2009-07-23 104 views
8

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

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

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

回答

6

你想要String#unpack

+0

就是这样。解包('L *')是我所需要的。 – 2009-07-23 22:57:04

+1

您应该明确使用little-endian或big-endian解包而不是native-endian,以保持一定的可移植性。 – hhaamu 2009-07-24 21:07:47

2

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

+0

更新后的链接:https://github.com/vjoel/bit-struct – odigity 2014-08-14 19:44:30