MFC点点滴滴——文本中搜索关键字(方法总结)
来源:互联网 发布:网络连接678什么意思 编辑:程序博客网 时间:2024/04/29 21:05
1.直接读入CString使用Find()
CFile f( "file.txt ",CFile::modeRead);
CString strBuf;f.Read(strBuf.GetBuffer(f.GetLength()),f.GetLength);
strBuf.ReleaseBuffer();
strBuf.Find( "RollBack ");
/////////////////////////////////////////////////
CFile file1;
if(!file1.Open(theApp.filename,CFile::modeRead)) { AfxMessageBox(_T("文件无法打开")); return FALSE; }
char [] str= new char[ file1.GetLength() ];
memset( pFileContent , 0, file1.GetLength() );
file1.Read(str,file1.GetLength()); file1.Close();
CString stemp(str);
str.Find( "XXX ");
/////////////////////////////////////////////////
#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;
}
}
} (雪上加冰)
在http://topic.csdn.net/t/20050330/10/3893213.html中(忧郁王子)的有一段代码
2.文本逐行读,然后在这一行用查找子串
得到
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查找关键字很方便。如果区分大小写,先str.MakeUpper()或lower下,整体处理后在用find().
3.调用windows索引服务
这部分暂时没有收集整理
- MFC点点滴滴——文本中搜索关键字(方法总结)
- MFC点点滴滴——多线程
- MFC点点滴滴——CImageList
- MFC点点滴滴——列表框使用list control(总结1)
- MFC点点滴滴——打开文件夹并枚举所有文件(总结)
- MFC点点滴滴——打开文件夹并枚举所有文件(总结) .
- MFC点点滴滴——对话框中使用定时器
- 关于Java的点点滴滴(1)——Static关键字
- MFC点点滴滴——读写配置文件(转)
- MFC点点滴滴——列表框使用list control(总结3)(控件技巧总汇 转)
- MFC点点滴滴——CStdioFile,CFile类
- MFC点点滴滴——进度条控件
- MFC点点滴滴——Invalidate/InvalidateRect/UpdateWindow
- MFC点点滴滴——自定义消息
- MFC点点滴滴——串口通信
- MFC点点滴滴——ClistCtrl添加图标
- MFC点点滴滴——奇葩的错误
- MFC点点滴滴——列表框使用list control(总结2)(编辑List Control里面的任何子项 转)
- Snow Leopard升级到 10.6.8后无法USB连接iPhone / iPad的问题
- 网络端口常见
- Matlab实现——严格对角占优三对角方程组求解(高斯赛尔德Gauss-Seidel迭代、超松弛)
- VirtualBox虚拟机安装Windows XP
- vb.net 特别变量定义
- MFC点点滴滴——文本中搜索关键字(方法总结)
- 评《搞IT的到底怎么了》
- EveryChart
- 数据库总结
- Generic<Programming>:volatile——编写多线程程序的好帮手
- 熟悉LinkedList类
- 20110910教师节小心情
- 关于css中span莫名换行的问题----崩溃的css
- String 使用split,replaceAll按照关键字分割字符串