- 主题:二进制文件搜索特征串的问题
读完一片之后指针往回挪5字节,再读下一片
【 在 javame (yimin) 的大作中提到: 】
: 假设二进制文件只有唯一特征串b'PYTHON',我如何分段读入找到
: 这个特征串的索引位置呢?
: 假设我读入的缓冲是1024字节,
: ...................
--
FROM 106.121.162.*
你读1024进来,然后只比较了5个字节?
你说你要搜索关键字,读进来那1024个字节,直接做匹配算法就行了啊,只不过在准备读下一个1024 之前 往回seek 5个字节,再继续读下一个1024,
至于你这为啥要另存一个文件,你相应处理一下别存重了
【 在 javame (yimin) 的大作中提到: 】
: 我这样处理你看行吗? 看上去得再双缓冲来区分边界字节串的解析。
: chunk = bytearray()
: while True:
: ...................
--
修改:xxxss FROM 106.121.131.*
FROM 106.121.131.*
我的意思是你只需要判断1024那个位置是否有关键字?别的位置不用管了?
【 在 javame @ [Python] 的大作中提到: 】
:
: 我是比较1024尾部的5个字节,来判断是否存在混叠。
: 没有混叠,我就将这1024字节写入新文件。
: 如果存在混叠的字节串,我就读入下一个缓冲区。
:
#发自zSMTH@ELE-AL00
--
FROM 106.121.131.*