当前位置:首页 > 测试测量 > 测试测量
[导读]文本文件是由若干行字符构成的计算机文件,根据本文存储方式的不同有多种格式,如doc、txt、inf等。通常所指的文本文件是指能够被系统终端或者简单的文本编辑器中接受的格式,可以认为这种文件是通用的、跨平台的。对

文本文件是由若干行字符构成的计算机文件,根据本文存储方式的不同有多种格式,如doc、txt、inf等。通常所指的文本文件是指能够被系统终端或者简单的文本编辑器中接受的格式,可以认为这种文件是通用的、跨平台的。对通用的英文文本文件而言,ASCII码是最为常见的编码标准;而如果需要存储带重音符号的英文或其它的非ASCII字符,则必须选择一种字符编码,如UTF-8。
尽管ASCII标准使得只含有ASCII字符的文本文件可以在Unix、Macintosh、Microsoft Windows、DOS和其它操作系统之间自由交互,但是在这些操作系统中,换行符并不相同,处理非ASCII字符的方式也不一致。换行(end-of-line, EOL)是一种加在文字字符最后位置的特殊字元,它可以确保后面的下一个字符能够出现在下一行。ASCII编码分别使用LF(Line Feed, 0Ah)或CR(Carriage Return, 0Dh)或CR+LF来表示换行(EOL),不同的操作系统处理EOL的方式如下:
LF:用于Unix或Unix相容系统(GNU/Linux, Mac OS X….),RISC OS;CR:Apple Ⅱ家族;CR+LF:Windows系统,大部分非Unix操作系统。LabVIEW中的文本文件读写采用图 1所示的两个函数完成:“Write To Text File”和“Read From Text File”。这两个函数是多态函数,可以接受File Refnum和File Path两种输入。

图 1 File I/O选板
本例将从一个数据读写的实例中介绍这两个函数的使用。如图 2所示,程序将一个二维数组转换为字符串后写入到文本文件中,将会自动生成该Test.xls文件(如果已经存在该名称的文件,将自动覆盖并不提示用户)。尽管例子的后缀名使用xls(Microsoft Excel格式),但是实质上是文本文件,使用各种文本编辑工具均可以打开(事实上也可以采用任何自定义格式的后缀名)。


图 2 Write to Text File
如果需要将现有的数据添加到原有的文本文件中,应该如何处理呢?如图 3所示,打开文件后使用Set File Position将文件指针移动到文件尾,再写入数据,并关闭文件。


图 3 Write to Text File_Append
对比图 2和图 3,可以看出,尽管都使用了Write To Text File函数,但是二者的输入是不一样的,前者使用路径而后者使用Refnum。此外,前者只使用了一个函数;而后者还加入了Close File函数。事实上,当使用文件路径(Path)直接连入(或者为空,此时将弹出路径选择对话框)到Write To Text File函数中时,LabVIEW将在执行完该函数时自动文件;但是如果是使用文件句柄(Refnum)连入到该函数或者将函数的输出句柄连接到了其它的函数,则LabVIEW将认为文件仍然在使用,并不自动关闭。
右击Write To Text File函数,在弹出菜单中有一个“Convert EOL”菜单项,默认是选中的。当勾选了该选项后,该函数将把所有基于操作系统的EOL字符(行结束符)转换为LabVIEW EOL符。比如会将单独的“”和“”转换成“”行结束符。
图 4显示了从Test.xls中读取数据的实例代码,使用Read from Text File函数能够将文本文件中的字符串读取,程序员可以对这些字符串进行后续的处理,如图中转化为Double数组。事实上,Read from Text File也能够接受路径和文件句柄两种输入方式,当需要只读取文件的部分字节时就需要使用到句柄操作了。


图 4 Read from Text File
Read from Text File函数有一个count输入,表示从文本文件中读取的字节数(byte),当设置为-1时表示整个文本。此外,在函数的右键快捷菜单中选择“Read Lines”将以行为单位(而不是字节)读取文本文件。Read from Text File函数同样也提供了“Convert EOL”选项,此时该函数将把所有基于平台的行结束符转换为换行符,如将“”和“”转换为“”。
【注意】
从Read from Text File函数的count端子可知,该端子为一个I32型整数。当将其它类型的整数连入到该端子时,将自动转换为I32型整数。如果文件过大,超过了I32的表示范围,需要分段读取。
【讨论】如何将一个文本文件的内容清空,但是不要将该文件删除呢?
这个问题似乎是程序员经常遇到的,一个简单的方式就是使用“Open/Create/Replace File”函数,将operation参数设置为replace and create。但是如果在使用文件的过程中,如何将文件内容清空呢?如图 5所示。


图 5 清空已写入文件的文本
当然可以先将该使用“Close File”函数关闭该文件,再使用“Open/Create/Replace File”函数新建该文件。此外,LabVIEW提供了一种字节控制的方式能够迅速地清空文件中的内容,如图 6所示。


图 6 使用Set File Size函数
毫无疑问,文本文件在数据存储方面是非常重要的。通用、简单和易用似乎是最大的优势,这一点从上面的实例中就可以看出来。但是,从测试测量的数据存储方面来说,它也有一些缺点。如读写速度比较慢慢,不适合于高速数据记录;文件取址和检索比较麻烦,无法实现快速定位;当数据量太大时,打开文本文件会非常慢。此外,文本文件无法存储颜色、富文本、图像和视频等多媒体信息。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭