首页 理论教育 文件I/O的基本概念与术语详解

文件I/O的基本概念与术语详解

时间:2023-06-28 理论教育 版权反馈
【摘要】:在文件I/O中会用到一些相关的概念和术语,包括:文件路径、文件引用句柄、文件I/O格式、文件I/O流程控制、文件I/O出错管理、流盘等。在lvm文件中,LabVIEW保存的数据精度可高达6位数。LabVIEW对文件进行I/O操作时,一般提供一个错误输入端和一个错误输出端,用来保留和传递错误信息。

文件I/O的基本概念与术语详解

在文件I/O中会用到一些相关的概念和术语,包括:文件路径、文件引用句柄、文件I/O格式、文件I/O流程控制、文件I/O出错管理、流盘等。

1.文件路径

文件路径分为绝对路径和相对路径。绝对路径指文件在磁盘中的位置,LabVIEW可以通过绝对路径访问在磁盘中的文件。相对路径指相对于下一个参照位置的路径,相对路径必须最终形成绝对路径,才能访问磁盘中的文件。LabVIEW中,路径可以是有效的路径名、空值或非路径。非路径是LabVIEW提供的一种特殊的路径,是在路径操作失败时的返回值

2.文件引用句柄

文件引用句柄是LabVIEW对文件进行区分的一种标识符,用于对文件进行操作。打开一个文件时,LabVIEW会生成一个指向该文件的引用句柄,对打开文件的所有操作均使用引用句柄来识别每个对象。引用句柄用于将一个引用句柄传进或传出VI。LabVIEW通过文件路径访问到文件后,为该文件设置一个文件引用句柄,以后通过此句柄即可对文件进行操作。文件引用句柄包含文件的位置、大小、读写权限等信息。

3.文件I/O格式

文件I/O格式取决于所读写的文件格式。LabVIEW可读写的文件格式有文本文件、二进制文件和数据记录文件三种。使用何格式的文件取决于采集和创建的数据及访问这些数据的应用程序。

(1)文本文件 文本文件是最便于共享的文件格式,几乎适用于任何计算机。许多基于文本的程序可读取基于文本的文件。多数仪器控制应用程序使用文本字符串。

如果磁盘空间、文件I/O操作速度和数字精度不是主要的考虑因素,或无需进行随机读写,可以使用文本文件存储数据,以方便其他用户和应用程序读取文件。

若要通过其他应用程序访问数据,如文字处理或电子表格应用程序,可将数据存储在文本文件中。

如需将数据存储在文本文件中,使用字符串函数可将所有的数据转换为文本字符串。文本文件可包含不同数据类型的信息。

如果数据本身不是文本格式(如图形或图表数据),由于数据的ASCⅡ码表示通常要比数据本身大,因此这种情况下,文本文件要比二进制文件和数据记录文件占用更多的内存。

(2)二进制文件 二进制文件可以用来保存数值数据,并访问文件中的指定数字或随机访问文件中的数字。与人可识别的文本文件不同,二进制文件只能通过机器读取。

二进制文件是存储数据最为紧凑和快速的格式。这种文件占用较少的磁盘空间,且存储和读取数据时,无需在文本表示和数据之间进行转换,因此二进制文件效率更高。

二进制文件可在1B磁盘空间上表示256个值。除扩展精度和复数外,二进制文件中含有数据在内存中存储格式的映像。因为二进制文件的存储格式与数据在内存中的格式一致,无需转换,所以读取文件的速度更快。

文本文件和二进制文件均为字节流文件,以字符或字节的序列对数据进行存储。(www.xing528.com)

(3)数据记录文件 数据记录文件以相同的结构化记录序列存储数据(类似电子表格),每行均表示一个记录。数据记录文件中的每条记录都必须是相同的数据类型。Lab-VIEW会将每个记录作为含有待保存数据的簇写入该文件。

每个数据记录可由任何数据类型组成,并可在建该文件时确定数据类型。数据记录文件只需进行少量处理,因而其读写速度更快;数据记录文件将原始数据块作为一个记录来重新读取,无需读取该记录之前的所有记录,因此简化了数据查询过程;仅需记录号就可以访问记录,因此可更快更方便地随机访问数据记录文件。

创建数据记录文件时,LabVIEW按顺序给每个记录分配一个记录号。每次运行相关的VI时,LabVIEW会将记录写入数据记录文件。将记录写入数据记录文件后,将无法覆盖该记录。读取数据记录文件时,可一次读取一个或多个记录。

LabVIEW还提供了独特的测量文件格式。测量文件包括基于文本的测量文件lvm文件和二进制测量文件(tdm文件、tdms文件)。

基于文本的测量文件(lvm文件)包括由写入测量文件Express VI生成的数据。该文件是用制表符分隔的文本文件,可在电子表格应用程序或文本编辑应用程序中打开。lvm文件不仅包括由Express VI生成的数据,还包括该数据的相关信息,如生成数据的日期和时间等。在lvm文件中,LabVIEW保存的数据精度可高达6位数。lvm文件用逗号作为数字的分隔符。如需将lvm文件中的数据从字符串转换为数值,可用本地化代码格式说明符将句点指定为小数点分隔符。

二进制测量文件(tdm文件、tdms文件)包括由写入测量文件Express VI或存储VI生成的数据。tdm文件通过基于XML的格式保存波形属性及包含该波形数据的二进制文件的链接。二进制格式的tdm文件在浮点数字上更为精确、占用磁盘空间更小,运行速度也比LabVIEW测量数据文件(lvm文件)更快。

4.文件I/O流程控制

文件I/O流程控制保证文件操作按顺序依次执行。文件I/O操作过程中,一般有一对保持不变的输入/输出参数,用来控制程序流程。文件标识号就是其中之一,除了区分文件外,还可以进行流程控制。将输入、输出端口依次连接起来,可保证操作顺序依次执行,实现对程序流程的控制。

5.文件I/O出错管理

文件I/O出错管理反映文件操作过程中出现的错误。LabVIEW对文件进行I/O操作时,一般提供一个错误输入端和一个错误输出端,用来保留和传递错误信息。错误数据类型为一个簇,包含一个布尔量(判断是否出错)、一个整型量(错误代码)和一个字符串(错误和警告)。在程序中,将所有错误输入端和错误输出端依次连接起来,任何一点的出错信息就可以保留下来,并依次传递下去。在程序末端连接错误处理程序,可实现对程序中所有错误信息的管理。

6.流盘

流盘是一项在进行多次写操作时保持文件打开的技术,如在循环中使用流盘。流盘操作可以减少函数因打开和关闭文件与操作系统交互的次数,从而节省内存资源;流盘操作避免对同一文件进行频繁打开和关闭,可以提高VI效率。

如果将路径控件或常量连接至写入文本文件、写入二进制文件或写入电子表格文件函数,则函数将在每次函数或VI运行时打开、关闭文件,增加了系统占用。对于速度要求高、时间持续长的数据采集,流盘是一种理想的方法,因其在数据采集的同时将数据连续写入文件中。

为获取更好的效果,在采集结束前,应避免运行其他VI和函数(如分析VI和函数等)。在循环之前,放置打开/创建/替换文件函数,在循环内部放置读或写函数,在循环之后放置关闭文件函数,即可创建一个典型的流盘操作。此时只有写操作在循环内部执行,从而避免了重复打开和关闭文件对系统的占用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈