Labview 二进制文件处理
主要有两个函数 Read From Binary File
和 Write To Binary File
Write To Binary File
一个简单的例子
举一个简单的例子,把一个数组按照二进制文件存储。
这里使用了Build Path
和Write To Binary File
, 这样可以在指定位置生成一个二进制文件。
但是这个二进制文件却并不是10×8bit/1byte = 10byte,而是14个字节大小
详细参数
请看这个函数的详细输入输出:
prepend array or string size?(T)
它表示当输入端的数据类型是数组或字符串时是否在文件头包含该数组的大小或字符串的长度,默认是True
。该长度通过一个32 bits(4 Bytes)的整型表示,因此当往二进制文件中写入数组和字符串时,可以决定是否需要将大小和长度信息写入文件头。
我们如果用Read From Binary File
去读取上面那个文件,会显示这个长度
如果我们把这个参数设为False,数据就变成这样:
相对应的文件大小:
测试用程序如下(Read From Binary File
相关的下面介绍)和:
因此我们可以通过读取某个二进制文件的前四位来表明这个二进制文件的大小(数组或字符串)
byte order
在LabVIEW的写二进制文件节点(Write to Binary File)中,Byte Order设置用于配置写入文件的字节顺序。它有两种选项:
Little-endian
(小端):即低有效字节在前,高有效字节在后。在Intel CPU
中常用。Big-endian
(大端):即高有效字节在前,低有效字节在后。主要在ARM和MOTOROLA CPU中使用
使用默认即可,通常不需调整。
Read From Binary File
一些参数和上述Write To Binary File
类似
data type
设置函数用于从二进制文件中读取的数据类型。该函数将从当前文件位置开始的数据解释为什么数据类型
比如在上述例子中,如果我们在data type
中输入一个U8数据,那么读取的时候会按照U8来读取,也就是每个字节解释为一个数据,由于我们输入数据的时候也是按U8来数据的,我们会得到正确的结果。
如果我们把输出改成U16的,那么读取的时候将会将两个字节作为一个数字,结果如下:
举例子,以前六位为例,在U8下能正常解释为0,1,2,3,4,5;但是如果以U16去解释,就会变成如下情况:
00000000 | 00000001 | 00000010 | 00000011 | 00000100 | 00000101 |
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 |
\ | 1 | \ | 512+2+1=515 | \ | 1024+4+1=1029 |
count
count是要读取的数据元素的数量。数据元素可以是字节或数据类型的实例。该函数返回数据中的计数数据元素,或者如果它到达文件的末尾,它返回迄今为止读到的所有完整的数据元素和一个文件末尾错误。默认情况下,该函数返回一个单一的数据元素。如果count为-1,该函数从当前文件位置开始读取整个文件。如果count小于-1,函数会返回一个错误。
相关程序下载位置:
https://download.csdn.net/download/Tuing_/87755415