我想使用 C++ 或 C 在大型(> 500 MB)文本文件中找到一些值。我知道可能的匹配值只能存在于每行的开头,并且其长度恰好为 10人物。好的,我可以逐行读取整个文件,使用 substr() 搜索值或使用正则表达式,但这有点难看而且非常慢。我考虑使用嵌入式数据库(例如 Berkeley DB),但我要搜索的文件非常动态,我发现每次将其导入数据库时都会遇到问题。由于内存的限制,不可能一次将整个文件加载到内存中。非常感谢。
最佳答案
这似乎不太适合 C/C++。由于问题定义为需要解析整行文本,并对前 10 个字符执行模式匹配,因此解释的东西,例如 python 或 perl 似乎更简单。
怎么样:
import os
pattern ='0123456789' # <-- replace with pattern
with open('myfile.txt') as f:
for line in f:
if line.startswith(pattern):
print "Eureka!'
关于c++ - 如何使用 C++ 或 C 在大文件中查找特殊值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034409/