档案输入与输出——高阶档案 I/O
在本小节中,我们会针对四个主要的高阶存档元件做介绍,分别是 Write To Spreadsheet File、Read From Spreadsheet File、Write To Measurement File 及 Read From Measurement File。
Write To Spreadsheet File
Write To Spreadsheet File 可以帮助你很容易的将一维或二维的浮点数、整数、字符串资料等,存成文字格式的档案。只要直接输入资料至 VI 上就算是完成存档程序了。下图是该元件的输入脚位介绍:
format: 这是资料格式定义的脚位,"%" 所表示的是开始格式定义,".3f" 则用来表示该资料为浮点数,且只保留到小数点第三位。你可以从 LabVIEW Help 内的 format string syntax 中了解更多的定义方式。
file path: 指定存档档案的路径。若不指定,则程序在执行时会跳出对话视窗询问档案位置。
2D data: 输入资料若为二维,则将资料连接到此脚位。
1D data: 输入资料若为一维,则将资料连接到此脚位。
append to file?: 若想要使用同一个档案,将资料不断地附加到该档案的最后面,那就需要将这个脚位设成 True。
transpose?: 这个输入的脚位会影响阵列资料的排列方向,预设是 False,资料在存档时会横着排列;若设成 True,则资料会直的排列 (经转置):
Read From Spreadsheet File
如果想要将表格格式的文字档或用 Write To Spreadsheet File 所储存的档案读到 LabVIEW 的阵列中时,你可以使用 Read From Spreadsheet File 来载入档案资料,但要记得每个数值间是以 Tab 做为间隔,如果间隔使用不正确,会造成无法资料无法正确读入。
number of rows: 指定要载入资料的行数。若要载入全部资料,则可直接输入 "-1"。
all rows: 全部资料输出脚位。
first row: 第一行资料输出脚位。
mark after read: 回传档案读取最后一个字位的位置。
EOF?: 全名是 End Of File。当指定要读取的资料已经超过了档案内所有资料的长度时,此脚位会输出 True,说明已经读过头了。
Write To Measurement File
Write To Measurement File 是一个功能更强的高阶存档元件,支援了 Text (LVM)、Binary (TDMS)、Binary with XML Header (TDM) 三种不同的格式,而且还可以指定程序自动分割档案,对于长时间讯号撷取记录非常方便使用。
当 Write To Measurement File 被建立时,会立刻跳出设定视窗:
Filename: 资料存档的路径。你也可以勾选 Ask user to choose file 来设定让程序执行时由使用者自行决定欲存档的位置。当然这个输入资料也可以由 VI 的输入脚位提供。
Action: 设定单一档案存档 (Save to one file),还是程序自动分割档案 (Save to series of files)。若选择后者,你可以再点选 Settings... 进行设定:
Filename Suffix: 设定分割档案的取名规则。
Existing Files: 设定如果遇到相同档名的档案时的处理方式。
File Termination: 设定档案分割的规则,可以按照档案大小或时间等不同的方式。
File Format: 设定档案的格式。
Segment Headers: 设定是否写入档头信息。档头信息通常对于含有时间讯息的讯号比较有意义,因为它会将时间的讯息写在档头的位置,以利还原真实讯号的时间与间隔等信息。
X Value Columns: 设定存档的第一个栏位是否放置时间讯息。以 DAQ 节取到的资料为例,你可以每个 Channel 都特别建一个栏位放置时间讯息,也可以所有 Channel 只使用同一个时间讯息。
Delimiter: 讯号分隔的方式。你可以选择使用 Tabulator 或是 Comma (,) 两种不同的方式分隔。
Read From Measurement File
Read From Measurement File 可以帮助你将利用 Write To Measurement File 所储存的资料载入。
当 Write To Measurement File 被建立时,会立刻跳出设定视窗:
Time Stamps: 如果选择的是 Relative to start of measurement,就是使用相对时间表示;若选择的是 Absolute (date and time),则是使用绝对时间来表示,而所记录的时间是从 1904 年 1 月 1 日的 AM 12:00 开始所经过的秒数,但此功能只支援 LVM 的档案格式。
Segment Size: 设定欲读取的档案长度。你可以手动指定 Sample 数,也可以直接让程序读回一个 Segment 的长度,至于一个 Segment 有多长,还是要回到之前的存档程序确认才会知道。
Generic Text File: 文字载入相关的设定,象是数值的分隔方式或是资料起始的栏位都是可以设定的。
謝謝大大的分享