私はConstBitStreamとしてロードされたファイル内の特定のバイトを見つけようとしている:ConstBitStream内のバイナリデータを特定のオフセットから検索するにはどうすればよいですか?
s = ConstBitStream(filename=myFile)
found = s.find('0x4140', bytealigned=False)
これが最初に出現したため正常に動作しています。これは動作していないよう
s.bytepos = position_after_the_first_occurrence + my_offset
found = s.find('0x4140', start=s.bytepos, bytealigned=False)
:最初のシーケンスを見つけた後、私は再びfind
メソッドを使用しますが、今のオフセットから開始して、次のいずれかを見つけたいです。私はバイナリシーケンスの最初の出現から常にポジションを得ています。
どういうところが間違っていますか?
UPDATE:
(第found
とs.bytepos
の値):
found = {tuple} (54784,)
s.bytepos = {int} 6848
(第found
とs.bytepos
の値):
s.bytepos = {int} 32969
found = {tuple} (54784,)
start=s.bytepos
を設定すると思われます持っていない任意の効果。
'found'(最初の値)と' s.bytepos'の値を出力できますか? –
'start'引数の値として' s.bytepos'を使用しないでください。代わりに 's.pos'を使用してください。 – user2683246
'my_offset'はビットではなくバイトであることを確認してください。 'found'値はバイトオフセットではなくビットオフセットを持つタプルであることに注意してください。 – user2683246