我如何使用BinData?

时间:2016-06-07 03:44:01

标签: ruby bindata

我正在尝试解析二进制文件,但我无法弄清楚如何正确使用BinData

二进制文件的设置方式如下:

  1. 前4个字节(UINT32)表示属性名称的长度。
  2. next 8 * length表示属性名称(作为字符串)。
  3. 接下来的4个字节(UINT32)表示属性类型的长度。
  4. next 8 * length表示属性类型(作为字符串)。
  5. 接下来的8个字节(UINT64)表示数据的长度。
  6. 之后,数据可以是任意数量的字节(取决于它是什么类型的数据,可以是int(4),string(4 * len),float(4)或数组)。
  7. 在此之后,该过程将重复下一个属性。

    我想我的问题是:

    1. 当我调用MyBinDataClass.read()时,我如何向它提供正确的读取部分而不是整个文件,因为我不知道每个属性到底有多长(它们因类型而异),我怎么能把它分开呢?

    2. 如何使单个BinData处理不同的属性类型?

0 个答案:

没有答案