微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > Labview字符串与文件I/O

Labview字符串与文件I/O

时间:01-06 来源:互联网 点击:

  1. 据,则必须把它之前的数据全部都读出来,才可以访问所需要的数据。

  2. 数据记录文件
  3. 数据记录文件也是一种二进制格式的文件,只有LabVIEW才可以对它进行读取和处理。数据记录文件可以看成是数据库文件格式,它将数据存储为一系列相互独立的有各自数据类型的记录,就像簇一样,每一个记录可以包含不同类型的数据,这些数据类型是由用户事先指定的。LabVIEW允许用户自由读取数据记录文件,在各个记录中索引出不同数据类型的数据,并且每一个记录文件都包含由时间标记。

    LabVIEW在程序框图上的为我们提供了一整套功能强大而且方便灵活的文件输入/输出函数,如图:

    具体每个控件的作用和功能不在这里向大家详细地介绍,下面将通过一系列地例子来说明各种文件的读取。

例一:

使用“写文本文件”函数写文本文件

1.新建一个VI,在前面板上放置一个“波形图表”,将标签内容改为“温度”,取消显示曲线图注和X,Y坐标轴标签,同时放置一个数字输入控件,将标签改为“采样点数”。再放入一个“文件路径输入控件”,它位于控件→新式→字符串与路径→文件路径输入控件,如图:

2.后面板程序如图:

其中用到了一个LabVIEW自带的程序Digital Thermometer.vi,在程序框图中点击“选择VI…”,如图:

系统会自动打开一个对话框,如图:

在我的计算机里,它位于labview8.2→Activity→Digital Thermometer,如图:

其中在“格式化写入字符串”函数上的“%3.fn”是转换后保留三位小数,字符串间以回车间隔。

回到前面板,点击“路径”右边的小图标:

打开一个对话框,选择文件的存储路径,如图:

选择完后,程序即可运行,运行结果如图:打开记事本,即可看到写入的文件,如图:

此程序中利用了For循环自动索引的功能,一次产生了10个数据,然后逐一写入文本。正因为此,“写入文本文件”是高层文件I/O操作函数,高层文件I/O操作函数每调用一次就会实现创建或打开文件,读写文件,关闭文件的整个过程。如果需要向文件中连续写入数据,这样的效率是非常低的。如果想要提高效率,可以采用底层文件I/O操作函数来实现写文本文件。

例二:

使用底层文件I/O操作函数向文本文件写入数据。

图中框起来的便是底层文件I/O函数

前面板的构建和例一类似,下面是程序框图:

从途中可以看出,程序进行循环后,文件则被打开,这样就可以一直向文件中输入数据,直到循环结束,才关闭文件,它大大提高了写文件的效率。

运行结果如图:

从上图可以看出,每两个数字之间正好间隔一个Tab定界符。

例三:写电子表格文件

“写入电子表格文件”函数的应用与“写入文本文件”函数的应用十分相似。它能直接写入一维或是二维的数据。程序框图如图:

图中Generate Waveform.vi也使LabVIEW自带的一个VI,它与前面所讲的Digital Thermometer.vi在同一个文件夹里,它是用于模拟产生抽样信号的。该函数默认的是将数据在表格中按行排列,那么一个二维数组的记录则只有两行,若在该接口中给其赋值“真”,则数据会按列排列。

运行结果如图:

打开保存的电子表格文件,即可看到数据

例四:读文本文件

该例采用在例一中保存的文件,程序框图如图:

说明:其中用到了一个LabVIEW自带的子VI:Extract Numbers,它位于LabVIEW8.2→examples→general→strings,如图:

单击确定后,系统会弹出下面的对话框:

选择Extract Numbers.vi,它的作用是提取由逗号,分行符号,非数值字符等分隔开的数据所组成的ASCII字符串,并将它们转换成数值数组,用于将读取的字符串转换为双精度数据类型的一维数组。运行结果如图:

例五:另一种读取文本文件的方法

上面的例子是用一个函数完成了,文件的打开,读取,关闭。和写入文本文件时一样,我们也可以通过三个函数来实现以上的三个步骤,程序框图如图:

其中For循环默认的是自动索引,在连线后,需将图中框起来的两个节点禁用索引。运行结果如图:

例六:读取电子表格文件

本例使用例三所产生的表格文件。

程序框图如图:

运行结果如图:

从结果中可以看到,因为例三在生成表格文件时采用的格式为“%.3ft”,所以从该电子表格中读取数据时,中间的一行空白LabVIEW会自动把它们默认为0数组,从而在波形图表中显示的时候会出现中间的一行红线。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top