LabVIEW 2015中文版提供了两个VI用于写入和读取电子表格文件,它们分别是写入电子表格文件VI和读取电子表格文件VI。下面以两个实例分别介绍这两个函数存取电子表格文件的方法。图7-120所示的程序可能有些不容易理解,问题在于两个写入电子表格文件VI的执行次序问题。2)使用读取电子表格文件VI将保存在文件中的数据逐个读出。......
2023-11-07
要将数据写入电子表格,必须格式化字符串为包含分隔符(如制表符)的字符串。
写入电子表格文件VI或数组至电子表格字符串转换函数可将来自图形、图表或采样的数据集转换为电子表格字符串。
LabVIEW 2012中文版提供了两个VI用于写入和读取电子表格文件,它们分别是写入电子表格文件VI和读取电子表格文件VI。下面以两个实例分别介绍这两个函数存取电子表格文件的方法。
写入电子表格文件VI可以将一个一维或二维数组写入文件,如果没有在文件路径输入端口指定文件路径,则程序会弹出一个“文件”对话框,提示用户给出文件名。除了文件路径输入端口以外,此VI的二维数据和一维数据输入端口分别用来连接将要存储为文件的二维和一维数组。“添加至文件?(新文件:F)”输入端口用于连接一个布尔变量,如果变量的值为TRUE,则输入的数据追加到已有文件的后面,如果是FALSE,则输入的数据将覆盖原有的文件。“转置?(否:F)”数据输入端同样也连接一个布尔型变量,如果是TRUE,则将输入的数组做转置运算,然后将运算的结果存储为电子表格文件。在格式数据输入端口可以更改数组中数据的格式。
例8-3:写入电子表格文件VI的使用。
首先,新建一个VI,从函数选板中的文件I/O子选板中选取写入电子表格文件VI置于LabVIEW的程序框图中。
用For循环产生100个正弦数据及余弦数据,并分别将两组数据用写入电子表格文件VI存储为电子表格文件,文件路径为C:\data。
程序框图如图8-117所示。
上面的程序将For循环产生的正弦与余弦数据存储在电子表格文件data中,用Microsoft Excel打开这个文件,可以发现文件中有两行,第一行为余弦数据,第二行为正弦数据,用Microsoft Excel的绘图功能分别汇出这两行数据的散点图分别如图8-118和图8-119所示。
图8-117所示的程序可能有些不容易理解,问题在于两个写入电子表格文件VI的执行次序问题。更容易理解且更常用的方法是将数据合并成一个二维数组,将二维数组一次性写入电子表格文件。程序框图如图8-120所示。
图8-117 程序框图
图8-118 用存储在电子表格文件中的余弦数据绘图
图8-119 用存储在电子表格文件中的正弦数据绘图
图8-120 使用写入电子表格文件VI写入二维数组
本实例充分印证了电子表格的特性,也是这种文件格式最大的好处,可以用其他电子表格处理软件来处理文件中的数据。
例8-4:电子表格文件的读取。
本实例的程序框图如图8-121所示,使用读取电子表格文件VI读取用写入电子表格文件VI存储的正弦与余弦波形文件。
图8-121 程序框图
如果不在读取电子表格文件VI的文件路径端口连接任何路径,那么程序将打开“文件路径”对话框,让用户选择存储的电子表格文件的路径。在读取电子表格文件VI中另外几个比较重要的端口有:行数(全部:-1),读取起始偏移量(字符:0),转置(否:F)。
本实例中,将读取的电子表格文件的数据使用波形图控件在前面板上显示,程序的前面板及运行结果如图8-122所示。
在程序前面板中,波形图控件显示出了用读取电子表格文件VI读取的电子表格中的数据。两条正弦余弦曲线就是上一节中用写入电子表格VI存储的正弦、余弦数据。
“文件I/O”函数还可用于流盘操作,它可以减少函数因打开和关闭文件与操作系统交互的次数,从而节省内存资源。流盘是一项在进行多次写操作时保持文件打开的技术,如在循环中使用流盘。如将路径控件或常量连接至写入文本文件、写入二进制文件或写入电子表格文件函数,则函数将在每次函数或VI运行时打开关闭文件,增加了系统占用。避免对同一文件进行频繁的打开和关闭操作,可提高VI效率。(www.chuimin.cn)
图8-122 程序前面板
在循环之前放置打开/创建/替换文件函数,在循环内部放置读或写函数,在循环之后放置关闭文件函数,即可创建一个典型的流盘操作。此时只有写操作在循环内部进行,从而避免了重复打开关闭文件的系统占用。
对于速度要求高,时间持续长的数据采集,流盘是一种理想的方案。数据采集的同时将数据连续写入文件中。为获取更好的效果,在采集结束前应避免运行其他VI和函数(如分析VI和函数等)。
例8-5:文件I/O函数的流盘操作。
本实例使用写入电子表格文件VI演示文件I/O函数的流盘操作。操作步骤如下:
使用打开/替换/创建VI打开一个文件,它的操作端口设置为create or open,即创建文件或替换已有文件。文件名的后缀并不重要,但习惯上常取“txt”或“dat”。
利用While循环将数据写入电子表格文件。
使用关闭文件函数节点关闭文件。
本实例中信号源是一个随机噪声。VI的前面板和程序框图如图8-123和图8-124所示。
图8-123 连续写入电子表格文件前面板
可以使用Windows操作系统的文本编辑工具查看文件中的数据。图8-125所示是用记事本打开的所存储的数据文件。从图中可以看出,数据共有一列20行,每一行对应一次数据采集,每次数据采集包含一个数据。
图8-124 连续写入电子表格文件程序框图
下面使用读取电子表格文件VI演示数据读取中的流盘操作。本例的步骤如下:
使用打开/替换/创建VI打开一个文件,它的操作端口设置为open,即打开已有文件。
使用读取电子表格文件VI将保存在文件中的数据逐个读出。将这些数据打包成数组送入波形图显示。
使用关闭文件函数节点关闭数据文件。
VI的前面板及运行结果如图8-126所示,VI的程序框图如图8-127所示。
图8-125 写入电子表格文件中的数据
图8-126 连续读取电子表格文件程序前面板
图8-127 连续读取电子表格文件程序框图
有关LabVIEW 2012中文版虚拟仪器从入门到精通的文章
LabVIEW 2015中文版提供了两个VI用于写入和读取电子表格文件,它们分别是写入电子表格文件VI和读取电子表格文件VI。下面以两个实例分别介绍这两个函数存取电子表格文件的方法。图7-120所示的程序可能有些不容易理解,问题在于两个写入电子表格文件VI的执行次序问题。2)使用读取电子表格文件VI将保存在文件中的数据逐个读出。......
2023-11-07
前面章节讨论了将数据写入文件和从文件中读取数据的方法。在上述两方面应用的文件数据处理中,文件操作的模式应该是“读写”文件。“读写”文件的打开模式有两大类:读为主的读写类模式和写为主的读写类模式。在对文件数据读写时,必须确认读写位置指针的性质是“读位置指针”还是“写位置指针”。下面通过两个示例展示文件“读写”模式的使用方法。......
2023-11-20
例9.2中的程序是按处理文本文件的方式来编写的。在文件内部有一个位置指针,用来指向文件的当前读写字节。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。例9.3将例9.1中的建立的文件A.dat的内容在屏幕上显示。例9.4从A.dat文件中读入一个含10个字符的字符串。例9.6从键盘输入两个学生数据并写入一个文件中,再读出这两个学生的数据显示在屏幕上。......
2023-11-18
在程序设计中,需要区别文件指针和文件内部读写位置指针两个不同的操作对象。文件内部读写位置指针用以指示文件内部的当前读写位置,每读写一次,根据读写记录的个数,该指针均自动向后移动与读写方式相适应的距离。读写位置指针未到文件尾时函数返回0值;读写位置指针到达文件尾时函数返回非0值。......
2023-11-20
在x86处理器和PowerPC处理器中,PCI设备对“不可Cache的存储器空间”进行DMA读写的过程并不相同。在x86处理器中,PCI设备向不可Cache的存储器空间进行读操作时,CPU也必须进行Cache共享一致性操作,而这种没有必要的Cache共享一致性操作将影响PCI总线的传送效率。此时PowerPC处理器不会在FSB总线中进行Cache一致性操作,即忽略FSB总线事务的Snoop Phase。PCI设备进行DMA写时,数据将直接进入主存储器,而PCI设备进行DMA读所读取的数据将直接从主存储器获得。......
2023-10-20
源代码12-6 Capric卡的DMA写片段1这段源代码首先对count字段进行检查,因为Capric卡规定一次DMA操作所传递的数据不超过2KB,之后使用kmalloc函数分配DMA写使用的数据缓存。源代码12-7 Capric卡的DMA写片段2 #ifdef和#endif出现在函数体中并不可取,请读者参阅Greg Kroah-Hartman的Proper Linux Kernel Coding Style掌握正确的处理方法。但是这种方法将产生较长的中断延时,从而极大影响Capric卡的DMA读写效率。Capric卡DMA读的硬件操作流程如第12.1.4节所示。......
2023-10-20
图1.13“安全选项”对话框5.关闭图形文件和退出AutoCAD“关闭”命令只关闭当前启动的绘图窗口,只是结束对当前编辑的图形文件的操作,可以继续运行AutoCAD软件,编辑其他打开的图形文件;“退出”命令是退出AutoCAD程序,结束所有的操作。......
2023-08-18
设置文件内部读写位置指针的作用是将文件内部读写位置指针从某一个起始位置移动(设置)到另外一个指定的位置,使用C标准库函数fseek可以完成此功能。表7.2标准库函数fseek的origin参数值及意义函数的功能是:将由stream所关联文件的内部读写位置指针从origin指定的起始位置开始移动offset所指定的字节数,当参数offset为正值时向文件尾方向移动,当参数offset为负值时向文件头方向移动。......
2023-11-20
相关推荐