labview的深入探索----文件系列之二进制文件

2015-08-26 09:48:57   来源:eefocus   

关键字: labview  文件系列  二进制文件

二进制文件是计算机文件中最常见的文件,它占用空间最小,适合于连续存储大量数据,同时它的存储格式基本和数据在内存中的存储格式一致或者类似,很多情况下,甚至是内存的映射,因此无论是存储还是读取都是速度最快的,同时,具有非常高的安全性,如果不知道数据的格式,很难分析出文件的格式.



同文本文件一样,打开和关闭是完全相同的,不同的是写VI和读VI.

先看一个简单写的例子


上面写的是U8数组,我们知道,一个U8对应一个字节,1024个U8数组对应的文件长度应该是1024=1K,但是实际文件长度是1028=4+1024,同理,下面的是I32的数组,一个I32=4BYTE,所以文件长度应该是1024*4=4096,但是实际文件长度是4100=4+4*1024.

可以看出,对一维数组,多出四个字节的长度,实际上是多出一个U32=4BYTE,代表的是一维数组的长度.原因在于WRITE BIN FILE VI,有一个选择项,如下图,表示是否写入数组长度或者字符串长度.



如果取消写入数组或者字符串长度,则数组所占空间大小和二进制文件所占空间完全相同.


之所以读写二进制文件速度是最快的,根本原因在于二进制文件的存储方式和数据在内存中的存储方式相似或者完全一致.

WRITE BIN FILE VI还有一个重要的输入选择项目,BYTE ORDER(字节次序),很多编程语言或者操作系统称之为大小端的问题.

在所有的计算机系统,包括单片机中,都存在大小端的问题.简单地介绍一下.
我们知道,一个整数U16或者I16,有两个字节组成,比如整数0X1234,由字节0X12,和0X34组成,那么,在内存中或者文件中,到底是0X12在前还是0X34在前那,在不同的操作系统和不同的编程语言中,这是有区别的,这就造成的数据的大小端的问题.

对于我们自己的数据二进制文件,这个选择并不重要,因为LV的读二进制VI也有同样的选择项,保持二者一致就可以了,但是如果被其它编程语言读取或者读取其他语言写的二进制文件,就要考虑大小端的问题,否则数据表现可能会出现错误,比如0X1234,可能会变成0X3412.
[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0826/article_12928.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文