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

VC中怎么快速判断一个文件的内容中是否包含某个串(区分大小写)

2012-01-19 
VC中如何快速判断一个文件的内容中是否包含某个串(区分大小写)?如何快速判断一个文件的内容中是否包含某个

VC中如何快速判断一个文件的内容中是否包含某个串(区分大小写)?
如何快速判断一个文件的内容中是否包含某个串(区分大小写)?

我把内容全部读出来放在CString   中  
MakeLower();再比较,发现效率很低

另外全部读出来不支持大文件的,有10几万的文件要判断该怎么办?

[解决办法]
当然只有是一个个搜索了.

然后用正则表达式也是一个不错的选择.
[解决办法]
需要先分析要查询的数据有没有什么固定模式可循的.

如果只是简单的搜索,那必须要挨个查.

想高效可以把文件转换成二进制放到数据库里.然后引索,再查.查询出结果之后再反定位到源文件.
[解决办法]
可以使用CStringT中的函数Find。

[解决办法]
不需要用CString,直接char *,先比较第一个字符,相同再比较下一个字符是否相同,不同跳到第三个字符重新开始。
这样只需要遍历文件一次,效率应该比正则还高。
[解决办法]
不应该一次全部读入内存,可以分次读入固定大小到缓存再查找,也可以使用其他类似方式避免一次大量读入,另外建议自己写匹配检查函数,尽量简短,对效率很高可以考虑使用汇编写这部分。
[解决办法]
区分大小写 为什么要 MakeLower
不要用 CString , 直接分配块内存
直接用strstr 速度非常快的
[解决办法]
快速模式匹配...

热点排行