我写了一个MFC程序,打开一个大文本文件来搜索它。该程序目前逐行搜索文件,全部约700,000个。它挑选出包含用户所需的十六进制ID标记的特定行,并将该行的单独部分转换为二进制文件以写入新的文本文件。该程序大约需要15秒左右才能完成此任务,这似乎太长了。我做了一些诊断,看起来我在每行读取时使用的ReadString()方法存在问题。有什么办法可以优化吗?文本文件以不特定的顺序显示不同的ID,因此我无法想到某些算法来更轻松地搜索此文件。
答案 0 :(得分:1)
它可能会或可能不会更快,但显而易见的替代方法是使用CFile :: Read读取整个文件(或其大块),然后使用memchr()在缓冲区中搜索十六进制ID字段。< / p>