8

我需要能够用 Ruby 解析二进制文件。该文件包含通过包含文件偏移量和每个块的长度的标头找到的数据块。

如何正确获取数据?到目前为止,我一直无法根据我读出的偏移量在文件中四处寻找,因为它们以我不知道如何转换为 IO#seek 理解的格式的字符串形式出现。

有什么帮助吗?将偏移量和长度转换为可用的东西(如整数或其他东西)的一般方法会有所帮助。

4

3 回答 3

6

你想要String#unpack

于 2009-07-23T19:11:32.890 回答
2

您还可以查看BitStruct,它为解析二进制数据提供了一个很好的高级接口。

于 2009-07-24T11:15:45.553 回答
2

查看 BinData gem,以及它列出的替代方案:

http://bindata.rubyforge.org/#alternatives

于 2011-08-10T18:06:09.370 回答