MFC中Find函数查找字符串,,

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函数查找字符串时不显示第一次找到的那一行,

4个回答

你可以用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。

Dir_miao
Dir_miao 要查找的是一个子字符串,不是单个字符,ReverseFind满足不了啊。。
大约 4 年之前 回复

代码不全,无法判断你的问题,没看到你的代码有“显示第一次找到的那一行”的功能,sm pm分别是什么含义,另外
if( pm.Find(sub_temp)== -1)
这个表示没有找到,而不是找到了。

Dir_miao
Dir_miao pm读取了的
大约 4 年之前 回复
Dir_miao
Dir_miao 不是第一行不显示,是隔一行显示一次,比如本来应该显示1,2,3,4,5行,但是只显示2,4,5行了
大约 4 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复Dir_miao: 调试下,read.ReadString(pm);,看看pm读取了没有。
大约 4 年之前 回复
Dir_miao
Dir_miao 要把找到的所有行全部显示
大约 4 年之前 回复
Dir_miao
Dir_miao 是不是没找到之后的处理命令有问题
大约 4 年之前 回复
Dir_miao
Dir_miao 嗯,多行的
大约 4 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复Dir_miao: 文本框是多行的么?
大约 4 年之前 回复
Dir_miao
Dir_miao pm是Rec.txt里面的内容
大约 4 年之前 回复
Dir_miao
Dir_miao 代码附上了
大约 4 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复Dir_miao: 你可以编辑问题
大约 4 年之前 回复
Dir_miao
Dir_miao 回复里面写不了代码。。。好尴尬
大约 4 年之前 回复
Dir_miao
Dir_miao
大约 4 年之前 回复

在两个地方ReadString,当然会隔一行显示一行。

Dir_miao
Dir_miao 请问要怎么解决呢,急求啊。。
大约 4 年之前 回复
Dir_miao
Dir_miao 请问要怎么解决啊
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐