首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-04-27 
我想问个关于文件读取的问题Readstring我有个问题关于文件读取的问件内容如下刘德华 72340 85748张学友 56

我想问个关于文件读取的问题 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))
这样试看

热点排行