我正在尝试解析二进制文件,但我不太清楚如何正确使用BinData。
二进制文件的设置方式如下:
- 前 4 个字节 (UINT32) 表示属性名称的长度。
- 接下来的 8 * 长度表示属性名称(作为字符串)。
- 接下来的 4 个字节 (UINT32) 表示属性类型的长度。
- 接下来的 8 * 长度表示属性类型(作为字符串)。
- 接下来的 8 个字节(UINT64)代表数据的长度。
- 在此之后,数据可以是任意数量的字节(取决于它是什么类型的数据,可以是 int (4)、string (4 * len)、float (4) 或数组)。
在此之后,该过程对下一个属性重复。
我想我的问题是:
当我调用 MyBinDataClass.read() 时,如何将正确的部分提供给它以读取而不是整个文件,并且由于我不知道每个属性的实际长度(它们因类型而异),我该如何正确划分它?
如何让单个 BinData 处理不同的属性类型?