文本文件是由若干行字符构成的计算机文件,依据本文存储方法的不同有多种格局,如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函数
毫无疑问,文本文件在数据存储方面是十分重要的。通用、简略和易用似乎是最大的优势,这一点从上面的实例中就能够看出来。可是,从测验丈量的数据存储方面来说,它也有一些缺陷。如读写速度比较渐渐,不适合于高速数据记载;文件取址和检索比较费事,无法完成快速定位;当数据量太大时,翻开文本文件会十分慢。此外,文本文件无法存储色彩、富文本、图画和视频等多媒体信息。