第6章字符串和文件存取第6讲学习目标1.学习字符串控件的创建与操作2.使用字符串函数3.执行文件输入和输出操作4.将数据以电子表格格式写入文件与读出5.从文本文件中读/写字符串。6.读写数据记录文件7.将波形数据写入文件6.1字符串6.1.1创建字符串控制器和指示器6.1.2字符串控件的菜单选项6.1.3字符串函数6.1.1创建字符串控制器和指示器图6.1字符串控件的选取与操作6.1.2字符串控件的菜单选项1.显示模式:2.滚动条(Scrollbar)3.UpdateValueWhileTyping选项在程序运行过程中,字符串显示器的内容将会随着字符的输入而改变,无需用户按动键盘上的回车按钮或工具栏的确认按钮进行输入确认。6.1.3字符串函数字符串函数子模板常用字符串函数1.StringLength(字符串长度)函数:2.ConcatenateString(连接字符串)函数3.StringSubset(从字符串提取子串)函数4.MatchPattern(查找匹配字串)函数5.FormatIntoString(格式化字符串)函数6.ScanFromString(扫描字符串数字字符)函数字符串函数应用举例例6.1.1MatchPattern函数的使用。例6.1.2使用格式字符串。注意:不允许有空参数输入端EditFormatString对话框例6.1.3ScanFromString函数使用示例。6.2文件存取文件操作三个基本步骤:·打开现存文件或创建一个新文件·写入或读取文件·关闭文件LabVIEW支持的文件类型(4种)•ASCII码流文件(文本文件)•二进制流文件•数据记录文件•波形数据文件6.2.1文件I/O子模板简介6.2.2高层文件操作VI及应用文件格式:电子表格读写/直接读写字符串/二进制文件读写什么是电子表格文件?是一种特殊的文本文件,一般用Tab(制表)键分割列,用EOL(end-of-line)行结束符分割行,可在电子表格文件中(如Excel)打开的文件。1.WriteToSpreadsheetFileVI(写电子表格文件)节点功能:是将单精度(SGL)浮点型一维或二维数组转换为电子表格字符串,并将其写入一个新的文件或添加到现存文件中,写入之后自动关闭文件。例6.2.1:使用WriteToSpreadsheetFile节点构建一VI将一个浮点型二维数组写入电子表格文件。注意:必须保证电子表格文件的所有字符串全部由有效的数值字符组成例6.2.2将含有10个随机数的一维数组写入电子表格文件。2.ReadFromSpreadsheetFileVI(读电子表格文件)该VI节点打开一个电子表格文件,从数字文本文件中指定的字符偏移量开始,读取指定行数的数据,并将这些数据转换成一个二维的单精度数字型数组,读完后关闭文件。例6.2.3构建一VI,使用ReadFromSpreadsheetFile节点读取电子表格文件,并将读出数据转换成字符串在前面板显示。(演示:读电子表格文件.vi)3.WriteCharacterstoFile(写字符串文件)该VI可以把一个字符串写入一个新文件或添加到一个已存在的文件中。在写入文件之前,打开或创建文件;写入之后,关闭该文件。4.ReadCharactersFromFile(读取字符串文件)该节点可以打开一个文件,从指定的字符偏移量开始,读取指定数目的字符,读完后输出字符串。例6.2.4:将温度采样值转换为以“,”分隔的格式化字符串,写入文本文件中。(演示:写字符串文件VI)例6.2.5读取文本文件数据。本例使用ReadCharactersFromFile节点从上例创建的温度数据.txt文件中读取数据,送前面板的读出数据指示器显示,同时将这些数据显示在温度曲线Graph上。6.2.3低层文件操作函数及应用基本文件操作包括:对文件进行打开、新建、读、写、关闭文件等。1.Open/Create/ReplaceFileVI(打开/创建/覆盖文件)参数值function(open:0)端子参数含义0打开一个已存在的文件,如果文件不存在返回一个错误代码1打开一个文件,若不存在则创建一个新文件2创建一个新文件或覆盖一个已存在文件3创建一个新文件,若与其它文件同名则返回一个错误代码2.WriteFile(写文件)该节点向文件标识符refnum指定的文件中写入数据(文本字符),写入字符的起始位置由posmode和posoftset端口参数指定。例6.2.6将前面例6.2.2的任务使用低级模块WriteFileVI实现。3.ReadFile(读文件)该节点从文件标识符refnum指定的文件中读取数据(文本字符),count端口指定读取的字节数,posmode和posoftset端口指定读取字符的起始位置,读取的字符串由data端口返回。例6.2.5从文件中读取数据。6.2.4数据记录文件I/O数据记录文件类似于数据库文件,按数据记录顺序存储数据。每个记录可以是任意类型数据的组合,但所有记录都必须是同一类型数据。例6.2.6写记录文件应用实例例6.2.7读记录文件应用实例注意:读取一个数据记录文件,必须清楚该文件写入时的数据记录格式。读取的格式必须与写入数据时所用格式一致6.2.5波形文件I/O波形文件实际上是一种特殊数据记录类型文件,在每个记录中可以包含一个或多个波形的数据。一个波形数据包括采样开始时间t,采样间隔Δt和采样数据y[](单精度数组)三部分信息。例6.2.8写波形文件。例6.2.8读波形文件数据。目标:使用ReadwavefomfromFile节点从上例创建的waveformdata文件中读取波形数据,并将波形数据显示在前面板上。6.2.6使用文件I/O功能函数的几点说明1.指定文件G语言提供了两种指定文件的方法:在编程中指定或者通过对话框指定。前者需要给VI提供文件名和路径名。2.路径和标识符(PathandRefnums)路径是一种用于识别文件的G数据类型。Refnums是由识别一个打开文件的G数据类型构成,当打开某个文件时,G会自动返回一个与这个文件类型相关联的标识。对打开文件的所有操作都是基于这个文件标识来识别每一个文件的。标识只在文件打开时生效。一旦文件关闭,G语言就将取消标识和文件之间的关联。假如该文件再次打开时,新的标识可能与原有标识不同。6.3编程练习6.3.1字符串编程练习练习目的:使用FormatIntostring、Matchpattern和Stringlength等函数设计一个子VI,将一个输入数字转换成显示2位小数的格式字符串,并将整合字符串及其长度在前面板输出。同时,在前面板输入密码,检测输入密码与设定密码是否匹配。6.3.2文件操作编程练习练习2:创建头文件,向文件添加采样数据。练习目的:创建一个VI,产生头文件,使用For循环定时采集温度值,并将每次采样时间及温度值以ASCII格式添加到文件中。(练习6-3-2-2.vi)练习6-3-2-2.vi小结1.字符串是ASCII字符的集合,字符串控制器和指示器在控制模板的String&Table子模板上。2.LabVIEW字符串函数在功能模板上的String子模板中。3.读/写文件操作之前,必须指定文件路径4.LabVIEW支持的文件类型(4种)ASCII码流文件(文本文件)二进制流文件数据记录文件波形数据文件