TCHAR name[MAX_PATH]={'\0'};
lstrcat(name,"F:\Rec.txt");
CString sm,pm;
CStdioFile read(name,CFile::modeRead);
while(read.ReadString(pm))
{
if( pm.Find(sub_temp)==-1)
{
read.ReadString(pm);
}
sm+=pm;
sm+="\r\n";
}
SetDlgItemText(IDC_EDIT1,sm);
为什么用find函数查找字符串时不显示第一次找到的那一行,
你可以用CString的ReverseFind方法来查找,代码如下:
1
2
3
CString str = "@111#222@333";
int index = str.ReverseFind('@');
CString::ReverseFind
int ReverseFind( TCHAR ch ) const;
返回值:
返回此CString对象中与要求的字符匹配的最后一个字符的索引;如果没有找到需要的字符则返回-1。
参数: ch 要搜索的字符。
说明:
此成员函数在此CString对象中搜索与一个子串匹配的最后一个字符。此函数类似于运行时函数strrchr。
http://blog.csdn.net/phenixyf/article/details/36442785
代码不全,无法判断你的问题,没看到你的代码有“显示第一次找到的那一行”的功能,sm pm分别是什么含义,另外
if( pm.Find(sub_temp)== -1)
这个表示没有找到,而不是找到了。
在两个地方ReadString,当然会隔一行显示一行。