Cla*_*hes 5 c# binary substring file find
在C#中搜索某个子字符串的大型二进制文件的最佳方法是什么?
为了提供一些细节,我试图从一个可执行的DWARF信息,所以我只关心的二进制文件(即部分开始与琴弦的某些部分.debug_info,.debug_abbrev等)
.debug_info
.debug_abbrev
我没有看到任何明显的Stream,FileStream或者BinaryReader,所以看起来我将不得不阅读块并自己搜索字符串的数据.
Stream
FileStream
BinaryReader
有没有更好的办法?
Bev*_*van 7
.NET中没有内置任何内容来搜索你,所以你需要通过chunk读取文件块并扫描你想要查找的内容.
您可以通过两种方式加快搜索速度.
首先,使用缓冲IO并一次传输大块 - 不要逐字节读取,读取64KB,256KB或1MB块.
其次,不要对你想要的部分进行线性扫描 - 查看用于字符串搜索的Boyer-Moore(维基百科链接)算法 - 您可以将其应用于搜索所需的DWARF信息.
归档时间:
16 年,6 月 前
查看次数:
6497 次
最近记录: