2009-07-23 29 views
8

Rubyでバイナリファイルを解析できる必要があります。このファイルには、各チャンクのファイルオフセットと長さを含むヘッダを介して検出されるデータのチャンクが含まれています。Rubyでバイナリファイルを解析する

データを正しく出力するにはどうすればよいですか?私はこれまでずっと、文字列に出てくるので、読み込んだオフセットに基づいてファイル内を調べることができませんでした。これは、フォーマットをIO#seekに理解する方法に変換する方法がわからないためです。

助けが必要ですか?オフセットや長さを整数や何かのようなものに変換する一般的な方法は役に立ちます。

答えて

6

ご希望の場合はString#unpackです。

+0

それでした。 unpack( 'L *')は私が必要としたものです。 –

+1

ネイティブエンディアンではなく、リトルエンディアンまたはビッグエンディアンのアンパックを明示的に使用して、移植性を維持する必要があります。 – hhaamu

2

また、BitStructを見ると、バイナリデータを解析するための素晴らしい高レベルのインターフェイスを提供することができます。

+0

更新されたリンク:https://github.com/vjoel/bit-struct – odigity

関連する問題