当前位置:首页 > 经验 >

二进制存储设置方法(高效二进制存储格式)

来源:原点资讯(www.yd166.com)时间:2022-11-06 18:38:32作者:YD166手机阅读>>

背景

在软件开发中,二进制文件格式相对于文本文件格式的缺点是,没有文本文件通用性强、直观,同时,在读取文件数据时,用户需要知道存储数据的数据类型格式等,才可以准确还原文件内容,但是,二进制文件的优点也比较突出,如文件存取速度快、占用空间小,同时,也可有效保护自己的数据文件。

在上篇文章中已经详细说了LabVIEW平台中文本文件的读写编程方法,这次通过例子再说下二进制文件的编程方法。

例1:入门例子

例子要求:将1至16共16个32位的整型数字以二进制文件的格式存储到计算机的D盘上,文件名称为“test1.bin”,存储完成后,立即读出该文件内容,并显示到前面板的数组控件上。

程序运行后界面如下图所示:

二进制存储设置方法,高效二进制存储格式(1)

实现代码如下:

二进制存储设置方法,高效二进制存储格式(2)

用For循环产生32位的整型数字1-16,读写二进制文件同读写文本文件的步骤相同,依照着打开文件、读写文件、关闭文件的顺序执行。

对于“写入二进制文件”函数的主要参数说明如下:

  • 待写入的数据参数,其类型可以连接任意的数据类型,即可以将任意数据写入二进制文件;
  • 是否预置数组或字符串的大小参数,表明当数据为数组或字符串时,LabVIEW是否将数据大小信息添加至文件开头,当为真时,在写入数据时,先写入4个字节的数值,存储了待写入数据的大小,默认为真,此例该参数设为假,即文件的开头未保存数组长度信息。
  • 字节顺序,可以是大端、小端或主机字节顺序,例子中使用的是大端序,其特点是最高有效字节占据最低的内存地址,默认是大端序。

本例字节顺序使用的是大端序,存储后文件内容以十六进制格式显示如下,对于1-16之间的32位整型数字明显看出,如对于数字1,低内存地上存储的是数据的高位字节(00),而高内存地址上存储的是数据的低位字节(01):

二进制存储设置方法,高效二进制存储格式(3)

当以小端序存储时,存储后文件内容以十六进制格式显示如下,其字节顺序与大端序相反:

二进制存储设置方法,高效二进制存储格式(4)

对于“读取二进制文件”函数的主要参数说明如下:

  • 读取文件的数据类型参数,必须给一个参数,该参数与写入文件时数组类型完全一致;
  • 读取数据的个数,不接该参数时,只读取一个数值,为-1时,读取所有的数据,本例为-1,表示读取整个文件的数据,为其它值时,读取相应个数的数据。
  • 字节顺序,必须与写入文件时字节顺序完全一致。
例2:实用例子

以上篇文章中的例子说明,模拟一个实际的数据采集与存取场景。在例子中产生一个正弦波形数据,然后将波形数据以二进制文件的格式存储到计算机的D盘上,文件名称为“test2.bin”,波形数据点数为500点,采样频率为1000Hz,正弦信号频率10Hz,幅值为5,文件中不仅包含了每个采样点的数据值,也包含了采样间隔信息。同样,在存储完成后,立即读出该文件内容,将波形数据显示到前面板的波形图控件上。

先看下程序运行后的界面:

二进制存储设置方法,高效二进制存储格式(5)

实现代码如下:

二进制存储设置方法,高效二进制存储格式(6)

在文件中,调用了两次“写入二进制文件”函数,分别存储采样间隔dt和采样数据Y。其中,在存储Y时,与上例不同,这儿参数预置数组大小设为真,在读取该文件时可以使用该值作为实际读取Y元素的个数参数。

经分析,存储后文件里面的数据格式分别为:dt(4个字节,double型)、数组大小(4个字节,int32型)及数组Y(500个点的double型数组)。所以,在读取波形数据时,也要按照这个格式进行读取。例子中,调用了三次“读取二进制文件”函数,分别读取dt和数组大小和Y。

最后将dt和Y组合成一个波形数据输出到波形图控件上进行显示即可。

结论

LabVIEW中读取二进制文件时,文件中的数据顺序、类型必须与存储时完全一致,才能正确读出文件中的数据。

大家加关注并私信回复:LabVIEW007,可获取该文章对应的LabVIEW原程序下载。

欢迎加关注,共同交流。

栏目热文

牛肉炒茄子可以放洋葱(茄子与洋葱牛肉一起炒吗)

牛肉炒茄子可以放洋葱(茄子与洋葱牛肉一起炒吗)

外甥女点名吃茄子,头天晚上牛肉炖茄子吃到光盘。 今早继续茄子,那就来个早餐速成面吧。简单又营养美味~By 女巫老婆婆用料...

2022-11-06 19:15:20查看全文 >>

牛肉炒洋葱可以放西红柿吗(西红柿加洋葱可以炒吗)

牛肉炒洋葱可以放西红柿吗(西红柿加洋葱可以炒吗)

番茄炒牛肉是很多人都喜欢吃的一道美食,明天就是除夕夜啦,吃年夜饭都要摆上各类好吃的拿手好菜,其中这道番茄炒牛肉就非常有面...

2022-11-06 18:49:27查看全文 >>

茄子牛肉洋葱可以一起炒吗(茄子和洋葱一起炒好吃吗)

茄子牛肉洋葱可以一起炒吗(茄子和洋葱一起炒好吃吗)

香菇牛肉配料:使用牛肉,蘑菇,红辣椒,大葱(仅白洋葱),辣椒酱,盐,糖,料酒,酱油,酱油,香油,黑胡椒,根据您的喜好使用...

2022-11-06 18:38:53查看全文 >>

芹菜洋葱西红柿炒牛肉(西红柿芹菜炒牛肉)

芹菜洋葱西红柿炒牛肉(西红柿芹菜炒牛肉)

平时买牛肉都是用辣椒,洋葱,芹菜,等等食材同牛肉一起炒.今天我试用蕃茄同牛肉一起炒,连汤汁都扫光盘.==《牛肉炒蕃茄》=...

2022-11-06 18:49:13查看全文 >>

牛肉西红柿和茄子能一起炒吗(茄子牛肉西红柿可以一起煮吗)

牛肉西红柿和茄子能一起炒吗(茄子牛肉西红柿可以一起煮吗)

浓香入味的牛肉西红柿茄子煲,软糯的茄子浸满了西红柿和牛肉的浓郁汤汁,简直是米饭杀手。这道菜好吃的关键——炖煲酱汁,一定要...

2022-11-06 18:46:56查看全文 >>

二进制和十进制转换表(二进制与十进制转换流程图)

二进制和十进制转换表(二进制与十进制转换流程图)

二、十六进制数转换成十进制数解,其值为各个位码乘以位权然后完全相加。一般地说,一个N进制数如果有n位(从0,1,…..n...

2022-11-06 19:14:53查看全文 >>

为什么选用二进制存储(存储为什么要用二进制)

为什么选用二进制存储(存储为什么要用二进制)

导读:本文聊一聊计算机是如何使用晶体管实现二进制计算的。如果你感觉文章略长,可以直接到文章末尾看总结文字。1.理论先行1...

2022-11-06 19:16:42查看全文 >>

二进制转换对照表(二进制转换有什么方法)

二进制转换对照表(二进制转换有什么方法)

在电学中经常会遇到数字间的进制转换,比如plc就必须了解相关知识点。很多人对这一块一直都是很模糊,或者说时间一长呢,总...

2022-11-06 18:41:42查看全文 >>

二进制方便储存吗(二进制妙用)

二进制方便储存吗(二进制妙用)

谁能书阁下白首太玄经大家都知道计算机是靠数字 0 和 1 的二进制进行存储和运算的。二进制的基数是2,逢二进一,退一当二...

2022-11-06 19:14:28查看全文 >>

二进制怎么存储信息(如何存储二进制数据)

二进制怎么存储信息(如何存储二进制数据)

我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要...

2022-11-06 19:16:42查看全文 >>

文档排行