读书人

小弟我想问个关于文件读取的有关问题

发布时间: 2012-04-27 11:57:44 作者: rapoo

我想问个关于文件读取的问题 Readstring
我有个问题 关于文件读取的 问件内容如下
刘德华 72340 85748
张学友 56221 52635
黎明 59961 54123
陈小春 89542 23544

是3排数据 我想用实现读取文件后 我想实现数据是否正确,比如我想找刘德华这行数据 只要找到“刘德华”就说明这一行数据正确了 , 逐行进行判断有没有“刘德华” 如果有 用AfxMessageBox 弹出 “刘德华已来”
我想用CStdioFile的Readstring来实现 但是始终不行
我的代码 事先我已经编了另一个按钮来实现文件的读取 通过另外一个按钮来实现判断 不知道有什么问题始终不对 COrderReadFileDlg::OnRead()
{
CString strserver,readstring;
if(file)
{
readlen=file.ReadString(readstring);(读取一行)
while(readlen)(判断是否是文件末 不是继续读取下一行)
{
int pos=readstring.Find(" "); 找到空格
strserver=readstring.Left(pos);空格前面的字符 赋值给strserver
if(strserver=="刘德华")判断
{
AfxMessageBox("刘德华已到");
return;
}

}
}
}

[解决办法]
CString strserver,readstring;
if(file)
{
///readlen=file.ReadString(readstring);(读取一行)
while(file.ReadString(readstring))(判断是否是文件末 不是继续读取下一行)
{
int pos=readstring.Find(" "); 找到空格
strserver=readstring.Left(pos);空格前面的字符 赋值给strserver
if(strserver=="刘德华")判断
{
AfxMessageBox("刘德华已到");
return;
}

}
}
readlen只是一个BOOL类型的变量,你那样写根本没有读取下一行,所以你只能找到刘德华在第一行的情况
[解决办法]
COrderReadFileDlg::OnRead()
{
CString strserver,readstring;
if(file)
{
readlen=file.ReadString(readstring);(读取一行)
while(readlen)(判断是否是文件末 不是继续读取下一行)
{
int pos=readstring.Find(" "); 找到空格
strserver=readstring.Left(pos);空格前面的字符 赋值给strserver
if(strserver=="刘德华")判断
{
AfxMessageBox("刘德华已到");
return;
}

}
}
这个函数的读取只读了第一行,如果你把“刘德华”放第一行,就会执行AfxMessageBox("刘德华已到");
while(file.ReadString(readstring))
这样试看

读书人网 >VC/MFC

热点推荐