写得啰嗦了点,见谅……
我做了一个光盘管理系统,现在已经写完了录入的代码,我建了一个单文档文件,然后录入后的数据分别显示在单文档中和保存在一个txt文件当中,现在我想在菜单栏中再加一项来读取数据,请问我该怎么来实现,我想了两、个方案,把数据从单文档中读出来,可是我的数据都是由控件录入的,每行记录一项数据,我怎么才能把数据按行读出来(不带乱码)并显示在另一个对话框中,请高手指点,如果有其他方案更好的我也可以接受,前提是我做好的代码我不想改了,费了很长时间弄的,而且我刚学MFC不久,东西不熟,所以别的方法我也不会,马上要交了,牛人帮忙,小弟谢过~!
我做了一个光盘管理系统,现在已经写完了录入的代码,我建了一个单文档文件,然后录入后的数据分别显示在单文档中和保存在一个txt文件当中,现在我想在菜单栏中再加一项来读取数据,请问我该怎么来实现,我想了两、个方案,把数据从单文档中读出来,可是我的数据都是由控件录入的,每行记录一项数据,我怎么才能把数据按行读出来(不带乱码)并显示在另一个对话框中,请高手指点,如果有其他方案更好的我也可以接受,前提是我做好的代码我不想改了,费了很长时间弄的,而且我刚学MFC不久,东西不熟,所以别的方法我也不会,马上要交了,牛人帮忙,小弟谢过~!
不知道你录入的代码怎么写的?
text文件中是怎样的格式保存的GetPrivateProfileString() 可以读取数据
SetWindowText() 可以显示数据具体的还要看你的具体情况了
@_@ @_@ @_@ @_@ @_@ @_@// // // // // 基 本 信 息 // // // // // 光 盘 名 称: 22入 手 日 期: 22内 容 分 类: 22光 盘 格 式: DVD光 盘 容 量: 4.7G入 手 方 式: 烧 录// // // // // 烧 录 信 息 // // // // //光盘未刻满,不可写入
显示数据的代码在这里(部分代码)
CString str;
//获取编辑正文
m_pParent->GetWindowText(str);
str+="@_@ @_@ @_@ @_@ @_@ @_@";
str+="\r\n";
str+="// // // // // 基 本 信 息 // // // // // ";
str+="\r\n";
str+="光 盘 名 称: ";
str+=m_ncdname;
str+="\r\n";
str+="入 手 日 期: ";
str+=m_ndate;
str+="\r\n";
str+="内 容 分 类: ";
str+=m_nkind;
str+="\r\n";
str+="光 盘 格 式: ";
str+=m_nCd?"DVD":"CD";
str+="\r\n";
str+="光 盘 容 量: ";
str+=m_nmemory;
str+="\r\n";
str+="入 手 方 式: ";
str+=m_nBuy?"烧 录":"购 买";
str+="\r\n";
str+="// // // // // 购 买 信 息 // // // // //";
str+="\r\n";
str+="随 书 附 赠: ";
str+=m_nfree?"是":"否";
str+="\r\n";
str+="购 买 价 格: ";
CString str1;
str1.Format("%d",m_nprice);
str+=str1;
str+=" 元";
str+="\r\n";
str+="出 版 商: ";
str+=m_npublish;
str+="\r\n";
str+="I S B N: ";
str+=m_nisbn;
str+="\r\n";
@_@ @_@ @_@ @_@ @_@ @_@ // // // // // 基 本 信 息 // // // // // 光 盘 名 称: 22 入 手 日 期: 22 内 容 分 类: 22 光 盘 格 式: DVD 光 盘 容 量: 4.7G 入 手 方 式: 烧 录 // // // // // 烧 录 信 息 // // // // // 光盘未刻满,不可写入
显示数据的代码在这里(部分代码)
CString str;
//获取编辑正文
m_pParent->GetWindowText(str);
str+="@_@ @_@ @_@ @_@ @_@ @_@";
str+="\r\n";
str+="// // // // // 基 本 信 息 // // // // // ";
str+="\r\n";
str+="光 盘 名 称: ";
str+=m_ncdname;
str+="\r\n";
str+="入 手 日 期: ";
str+=m_ndate;
str+="\r\n";
str+="内 容 分 类: ";
str+=m_nkind;
str+="\r\n";
str+="光 盘 格 式: ";
str+=m_nCd?"DVD":"CD";
str+="\r\n";
str+="光 盘 容 量: ";
str+=m_nmemory;
str+="\r\n";
str+="入 手 方 式: ";
str+=m_nBuy?"烧 录":"购 买";
str+="\r\n";
str+="// // // // // 购 买 信 息 // // // // //";
str+="\r\n";
str+="随 书 附 赠: ";
str+=m_nfree?"是":"否";
str+="\r\n";
str+="购 买 价 格: ";
CString str1;
str1.Format("%d",m_nprice);
str+=str1;
str+=" 元";
str+="\r\n";
str+="出 版 商: ";
str+=m_npublish;
str+="\r\n";
str+="I S B N: ";
str+=m_nisbn;
str+="\r\n";
CStdioFile f;
f.open(...);
然后用一个死循环
INT num = 0;
while(1)
{
CString strTemp;
if (!f.ReadString(strTemp))
break;
else
{
//把要的数据从整行字符串中分开,写入对应变量
num++;
}
}
这样,可以得到总共多少条记录,以及每条记录中需要的信息