单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第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 字符串控件的菜单项选择项,显示模式,:,2滚动条(Scrollbar),Update Value While Typing 选项,在程序运行过程中,字符串显示器的内容将会随着字符的输入而改变,无需用户按动键盘上的回车按钮或工具栏确实认按钮进行输入确认。,6.1.3 字符串函数,字符串函数子模板,常用字符串函数,1.String Length(字符串长度)函数:,2.Concatenate String(连接字符串)函数,3.String Subset(从字符串提取子串)函数,4Match Pattern(查找匹配字串)函数,5Format Into String(格式化字符串)函数,6Scan From String(扫描字符串数字字符)函数,字符串函数应用举例,例6.1.1 Match Pattern 函数的使用。,例6.1.2 使用格式字符串。,注意:不允许有空参数输入端,Edit Format String 对话框,例6.1.3 Scan From String 函数使用例如。,6.2 文件存取,文件操作三个根本步骤:,翻开现存文件或创立一个新文件,写入或读取文件,关闭文件,LabVIEW支持的文件类型4种,ASCII 码流文件文本文件,二进制流文件,数据记录文件,波形数据文件,6.2.1 文件,I/O 子模板,简介,6.2.2,高层文件操作VI 及应用,文件格式:电子表格读写/直接读写字符串/二进制文件读写,什么是电子表格文件?,是一种特殊的文本文件,一般用Tab(制表)键分割列,用,EOL(end-of-line)行结束符分割行,可在电子表格文件中如Excel翻开的文件。,1.Write To Spreadsheet File VI 写电子表格文件,节点功能:,是将单精度(SGL)浮点型一维或二维数组转换为电子表格字符串,并将其写入一个新的文件或添加到现存文件中,写入之后自动关闭文件。,:,使用,Write To Spreadsheet File 节点构建一VI 将一个浮点型二维数组写入电子表格文件。,注意:,必须保证电子表格文件的所有字符串全部由有效的数,值字符,组成,例6.2.2 将含有10个随机数的一维数组写入电子表格文件。,2.Read From Spreadsheet File VI读电子表格文件,该 VI 节点翻开一个电子表格文件,从数字文本文件中,指定的字符偏移量开始,读取指定行数的数据,并将这,些数据转换成一个二维的单精度数字型数组,读完后关,闭文件。,例6.2.3 构建一VI,使用 Read From Spreadsheet File 节点读取电子表格文件,并将读出数据转换成字符串在 前面板显示。演示:读电子表格文件.vi,.Write Characters to File 写字符串文件,该 VI 可以把一个字符串写入一个新文件或添加到一个已存在,的文件中。在写入文件之前,翻开或创立文件;写入之后,关闭,该文件。,.Read Characters From File读取字符串文件,该节点可以翻开一个文件,从指定的字符偏移量开始,读取指定,数目的字符,读完后输出字符串。,例 6.2.:将温度采样值转换为以“,分隔的格式化字符串,写入文本文件中。演示:写字符串文件VI),例,6,.2.读取文本文件数据。,本例使用 Read Characters From File 节点从上例创立的温,度数据.txt 文件中读取数据,送前面板的读出数据指示器显,示,同时将这些数据显示在温度曲线 Graph 上。,6.2.3 低层文件操作函数及应用,根本文件操作包括:对文件进行翻开、新建、读、写、关闭文件等。,1Open/Create/Replace File VI(翻开创立覆盖文件),参数值,function(,open:0,)端子参数含义,打开一个已存在的文件,如果文件不存在返回一个错误代码,打开一个文件,若不存在则创建一个新文件,创建一个新文件或覆盖一个已存在文件,创建一个新文件,若与其它文件同名则返回一个错误代码,.Write File(写文件,该节点向文件标识符 refnum 指定的文件中写入数据文本字符,写入字符,的起始位置由pos mode 和 posoftset 端口参数指定。,例6.2.6 将前面 例6.2.2 的任务使用低级模块 Write File VI实现。,3.Read File,(读文件),该节点从文件标识符 refnum 指定的文件中读取数据(文本字,符),,count,端口指定读取的字节数,,pos mode,和,pos,oftset,端口指定读取字符的起始位置,读取的字符串由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 读,波形文件数据。,目标:使用Read wavefom from File节点从上例创立的waveform,data文件中读取波形数据,并将波形数据显示在前面板上。,6.2.6 使用文件I/O功能函数的几点说明,1.指定文件,G 语言提供了两种指定文件的方法:在编程中指定或者通过对话框指定。前者需要给 VI 提供文件名和路径名。,.路径和标识符Path and Refnums,路径是一种用于识别文件的 G 数据类型。,Refnums是由识别一个翻开文件的 G 数据类型构成,当翻开某个文件时,G 会自动返回一个与这个文件类型相关联的标识。对翻开文件的所有操作都是基于这个文件标识来识别每一个文件的。标识只在文件翻开时生效。一旦文件关闭,G 语言就将取消标识和文件之间的关联。假设该文件再次翻开时,新的标识可能与原有标识不同。,6.3,编程练习,6.3.1 字符串编程练习,练习目的:使,用,Format Into string、Match pattern,和,String length,等函数设计一个子,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 码流文件文本文件,二进制流文件,数据记录文件,波形数据文件,