我希望输入一个文件名之后
可以判断该文件里面有没有我要找的某个字符串如: 我要在"test.txt"中搜索“ABC”,如果找到就返回真,否则返回假各位高手帮帮忙吧
可以判断该文件里面有没有我要找的某个字符串如: 我要在"test.txt"中搜索“ABC”,如果找到就返回真,否则返回假各位高手帮帮忙吧
解决方案 »
- vc2005编译出错,麻烦帮忙看一下
- 求一个算法
- PrintWindow用法
- [MFC]关于视频问题
- VC++引用自写DLL的问题,求助!
- 请问字串格式的小问题。
- 用msxml怎样写入回车符?
- 如何生成能够在没有装vc的机子上使用的可执行程序?? 谢谢,给个详细的操作步骤.谢谢 我很急呀,在线等待在线等待在线等待在线等待在线等待
- 请问使用Microsoft Web浏览器控件浏览的网页可以修改其HTML代码吗?
- 在win8下的CListCtrl的问题
- 简单问题:怎样用FILE*读取某个文件的所有内容到std::string定义的变量中
- unresolved external symbol问题...
if(!file.Open(sFileName, CFile::modeRead))
{
m_sError="Unable to open testplan file!\n\"" + sFileName + "\"";
return 1;
}
CString sItem, str;
//ÒÀ´Î¶ÁÈ¡²âÊԼƻ®ÐÅÏ¢
while(file.ReadString(sItem))
{
if(sItem.Find('#') == -1)
{
if(sItem.Find("BEGIN OF FILE") != -1) break;
else if(sItem.Find("Information") != -1)
m_sInfomation = sItem.Mid(25);
else if(sItem.Find("Version") != -1)
{
extern CString g_sTestplanVersion;
g_sTestplanVersion = sItem.Mid(25);
}
}
}象源代码中的一样,先一行一行的读,然后再使用CString的Find函数
如果是这样:
AB
C
那一行一行地读
肯定找不到
如果文件不是很大直接一次性读入到内存然后strstr就可以了
#include <iostream.h>int FindStringInText(const char* FileName,const char* FindString)
{
int result=FALSE;
CString str="";
if(GetFileAttributes((LPCTSTR)FileName)==0xFFFFFFFF)
{
return -1; //指定文件不存在
}
CFile file((LPCTSTR)FileName,CFile::modeRead);
char* temp=new char[file.GetLength()+1];
memset(temp,0,file.GetLength()+1);
file.Read(temp,file.GetLength());
str=temp;
result=str.Find((LPCTSTR)FindString,0);
file.Close();
delete []temp;
temp=NULL;
return result+1;
}void main()
{
int position=FindStringInText("f:\\test.txt","测试");
switch (position)
{
case -1:
{
cout<<"逗我玩啊?!指定文件不存在!"<<endl;
break;
}
case 0:
{
cout<<"弄错了吧,你说的那个文件中没有你要找的字符!"<<endl;
break;
}
default:
{
cout<<"你要找的字符在文件中第"<<position<<"个字符处!"<<endl;
break;
}
}
}