LUA - 逐位读取二进制文件

时间:2012-09-05 17:00:44

标签: lua boolean binaryfiles

您可以使用f:read(size)逐字节逐个读取二进制文件,其中大小代表字节数但我如何逐位读取? (如果你想要的话,字节或八位字节的1/8)

大部分数据都可以使用Int8(1),Uint16(2),Uint32(4),Int *(4) 但对于BOOL(0.125?)。

感谢您的帮助!

编辑:我的问题显然不是逐位读取文件,而是设法提取所有数据,包括一些布尔值(不创建1位的“移位”)。< / p>

1 个答案:

答案 0 :(得分:1)

你做不到。字节是可以从文件中读取的最小单位。您可以编写包装逐字节访问的代码,使其看起来像位。

从文件中读取布尔值的适当方法取决于它的编写方式。除非你一点一点地写出布尔值,否则你就不需要那样读它了。

Lua文件API仅处理数字和字符串。要编写布尔值,您需要将其转换为其中一种类型。要阅读它,您将阅读其中一种类型,并执行您用于编写的转换的反转。例如,您可以将true转换为1,将false转换为0,然后编写和读取数字。或者您可以尝试将多个布尔值打包到一个数字中。在任何情况下,您都不需要逐位读取或写入文件来读取和写入布尔数据。

相关问题