在Ruby中解析二进制文件

时间:2009-07-23 14:30:56

标签: ruby binaryfiles

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

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

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

3 个答案:

答案 0 :(得分:6)

你想要String#unpack

答案 1 :(得分:2)

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

答案 2 :(得分:2)

查看BinData gem及其列出的替代品:

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