Labview字符串与文件I/O
回到前面板,点击“路径”右边的小图标:
打开一个对话框,选择文件的存储路径,如图:
选择完后,程序即可运行,运行结果如图:打开记事本,即可看到写入的文件,如图:
此程序中利用了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数组,从而在波形图表中显示的时候会出现中间的一行红线。
评论