第5章 字符串和文件读取_第1页
第5章 字符串和文件读取_第2页
第5章 字符串和文件读取_第3页
第5章 字符串和文件读取_第4页
第5章 字符串和文件读取_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章字符串和文件存取主要学习内容1.掌握字符串控件的创建和属性设置;2.学习字符串函数的使用;3.熟悉文件I/O子模板;4.掌握高层文件函数的使用;5.掌握中层文件函数的使用。5.1字符串字符串是ASCII字符的集合。在LabVIEW中,除了通常的字符串应用(文本传送和显示、数据存储等)外,在对其进行控制操作时,控制命令和数据大都是按字符串格式传送的。5.1.1字符串控件的创建字符串控制器和指示器位于控制模板的String&Path子模板上或者在List&Table子模板上。字符串控件中主要有StringControl、StringIndicator、ComboBox和Table、Tree、ExpressTree。字符串控件的创建方法和其他类似,使用位置工具选择工具将图标放置在前面板上就可创建一个字符串控件。使用操作工具或标签工具可输入或修改字符串控件中的文本。可以使用位置工具拖动控件一角来缩放字符串控件大小。下面简单介绍各控件的使用1.StringControl&IndicatorStringControl&Indicator这两个控件实现最基本的字符串操作功能。它们可以让用户输入和输出字符串。(举例)

2.ComboBox

在ComboBox中可以有多个字符串,每个字符串成为一个条目(Label),并对应一个值(Value)。(举例)3.Table和ExpressTable4.Tree[例5.2]创建一个由多个字符串组成的ComboBox。创建过程:在前面板上创建一个ComboBox控件,将标签Label命名为“学生姓名(ComboBox)”;再创建一个String指示件,将标签命名为“学号(String)”。在ComboBox上右键弹出快捷菜单,选择EditItems…,打开对话框,对ComboBox进行设置。对ComboBox进行设置的对话框其框图程序和运行结果5.1.2字符串控件的属性设置1.字符串的显示模式:字符串控制件及指示件中的文本在机器内是以字符的ASCII格式来表示的。字符串的显示模式有4种(显示方式是通过右键快捷菜单选择):

(1)NormalDisplay:正常显示。这是LabVIEW默认的显示模式。

(2)PasswordDisplay:密码显示模式。在这种方式下,用户输入的字符串均显示为星号(*)。

(3)HexDisplay:十六进制显示模式。这种方式下,字符以与其对应的十六进制ASCII码的形式显示,尤其在程序调试和VI通信时比较有用。

(4)‘\’CodesDisplay:反斜杠代码显示模式。用户可以使用该方式查看正常方式下不可显示的字符代码。2.滚动条(Scrollbar):为了以较小的控件窗口显示更多的信息,使前面板更简捷,可在字符串控件弹出菜单,在VisibleItems选项里使Scrollbar有效。3.UpdateValueWhileTyping选项:当UpdateValueWhileTyping选项有效时,在程序运行过程中,字符串显示器的内容将会随着字符的输入而改变,不需要用户按动键盘上的回车按钮和工具栏的确认按钮进行输入确认。

[例5.5]输入一个字符串,分别用四种不同的方式显示。其框图程序和前面板如图5.1.3字符串函数字符串函数子模板常用的字符串函数1.测试字符串长度函数StringLength2.连接字符串函数ConcatenateString输入可以是单一字符串、字符串数组或字符串簇。

3.从字符串提取子串函数StringSubset该函数可以从一个字符串里提取从offset(偏移量)开始,长度为Length个字符的子串。注意,第1个字符的偏移量为0。

4.查找匹配字符串函数MatchPattern该函数在字符串中从offset端口参数指定偏移处开始搜索指定的表达方式(regularexpression),当发现匹配值后在节点的输出端将字符串(string)分为3个子串输出,第1个是匹配字符串之前的子串,第2个是匹配字符串,第3个是匹配字符串之后的子串。若没有搜索到匹配字符串,匹配字符串输出为空,在offsetpastmatch端输出为-1。(举例5.6)5.格式化字符串函数FormatIntoString该函数将任意格式的argument(参数)转换为由formatstring(格式化控制符)指定格式的字符串(resultingstring)输出。若FormatString未连线,则输出字符串会自动按输入数据类型的默认值格式化。用鼠标左键双击FormatIntoString函数节点,或在该函数节点上右键弹出菜单,选择EditFormatString选项,弹出对话框进行设置字符串的格式设置。(举例5.7)。

6.扫描字符串数字字符函数ScanFromString该函数将一个包含数字字符(如0-9,+,-,e,E等)的字符串转换为数字。此函数把inputstring从initialscanlocation端参数指定的位置开始,将字符串中有效数字字符转换为由formatstring函数节点指定格式的数据。(举例5.8)7.大小写字符转换函数ToUpperCaseandToLowerCase大小写转换函数ToUpperCase和ToLowerCase分别完成了将所有字符转换为大写形式和小写形式的功能。(举例5.9)5.2文件存取文件输入/输出(I/O)操作是向磁盘存储数据或从磁盘文件中读取数据。根据文件数据组织格式,LabVIEW支持的文件类型通常包括以下3种:文本文件、二进制流文件、数据记录文件。文件操作通常包括下列3个基本步骤:⑴打开现存文件或创建一个新文件;⑵写入或读取文件;(3)关闭文件。文本文件这是最常用和最通用的文件格式。此种文件格式将数据以ASCII码形式存取,其输入与字符一一对应,即一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出字符。这种格式文件可以被其他任何文本编辑器打开,例如Word或Excel。当用Word或Excel来读取或处理数据时,具有很好的直观性和兼容性。其缺点是占用磁盘空间大,执行速度慢,因存储时所有的数据都要转换成ASCII码字符串,故数据读出后,还需进行字符串到数值的转换。二进制流文件这是一种最快也是最紧凑的数据存储方式。此种文件是把数据按其在内存中的存储形式原样输出到磁盘存放。但存储时须将数据转换成二进制字符的格式,用户必须确切地知道正在存取的数据使用的是哪种数据类型。数据记录文件

这种文件格式是LabVIEW独有的一种二进制文件格式。与数据库文件相似,它的基本数据单元为特定结构的记录块(Record),这些记录块可以是LabVIEW的任何数据类型,也可以是它们的组合构成,同一个文件的数据块必须有相同的结构。访问这类文件时必须使用中层文件函数VI。其它的一些文件格式

(1)波形数据文件这种格式的文件包含了波形数据特有的一些信息,例如起始时间、采样间隔、波形数组等,是一种特殊形式的数据记录文件。(2)LabVIEW测试文件,即LabVIEWMeasurementDataFiles(后缀为lvm的文件)。(3)NI测试数据交换格式文件,即NITestDataExchangeFormatFiles(后缀为tdm的文件)。参考数refnum参考数refnum是一种特殊的数据类型。每当打开一个文件,G语言就返回一个与此文件相联系的参考数。对于打开文件的各种操作、当前读文件的位置、其他用户访问文件的权限等许多信息都用参考数来标志。参考数只在文件打开时有效。文件关闭以后,G语言就取消参考数与文件的联系。此后如果再次打开这个文件,G语言就返回一个新的参考数,很可能与上次使用的参考数不同。如果多次打开一个文件,每次打开都会返回一个不同的参考数。5.2.1文件I/O子模板LabVIEW提供了很多处理文件I/O操作的VI和函数,利用这些VI和函数可以进行文件的打开和关闭、文件的读与写、创建新文件、删除、移动及拷贝文件,还可执行查看文件目录列表等一系列操作。FileI/O子模板分为3个层次,即高层文件VI、中层文件VI及高级文件函数。文件I/O操作子模板

5.2.2高层文件操作VI及应用高层文件操作节点可分为:电子表格读写、直接读写字符串及二进制文件读写三种文件的操作。1.写电子表格文件WriteToSpreadsheetFile.Vi

该节点功能是将数值组成的一维或二维数组转换为文本字符串,写入一个新的文件或添加到现存文件中。如果文件已经存在,用户可以选择把数据追加在原文件数据后,也可以选择覆盖原文件;如果文件不存在,则创建新文件。该VI在写入数据之前会先打开或创建新文件,写入之后自动关闭文件。

在框图中创建一个3行3列的2D数组,该数组直接与WriteToSpreadsheetFile节点的2Ddata端连接。运行程序时,会弹出选择文件路径的对话框,写入文件名为2Ddata即可(也可以指定文件的类型,如保存为.txt的形式)。当然也可以指定文件路径,读者自己去做。[例5.9],使用WriteToSpreadsheetFile节点构建一VI,将一个浮点型二维数组写入电子表格文件。运行结果框图程序

如果要查看所保存的文件,则双击已经保存的文件名,此时会打开对话框选择要使用哪个应用程序打开,我们可以选择用Word、Excel或记事本等形式打开它。

注意:在WriteToSpreadsheetFile.vi的format端口,可以设置保存的数据格式,默认格式为%.3f,读者可根据需要自己设置。2.读电子表格文件ReadFromSpreadsheetFile.vi

该VI节点打开一个电子表格文件,从数字文本文件中指定的字符偏移量开始,读取指定行数的数据,并将这些数据转换成一个二维的单精度数字型数组,读完后关闭文件。此VI默认界定符delimiter是制表位Tab,若文件用了其它不同的界定符,应进行这个参数的设置。除此之外,该节点具有transpose(转置)数组选项功能。

在框图程序中,读电子表格文件节点从例5.9创建的2Ddata.txt电子表格文件中读取数据,读出的是一个浮点型二维数组,将其转换为浮点数字符串,送前面板Table(表格控件位于List&Table控件子模板)显示。同时还将此处的浮点型数组转换为电子表格字符串。[例5.10]构建一VI,使用ReadFromSpreadsheetFile节点读取电子表格文件,并将读出数据转换成字符串在前面板的电子表格中显示。框图程序和运行结果3.写字符串文件WriteCharacterstoFile.vi该VI可以把一个字符串写入一个新文件或添加到一个已存在的文件中。在写入文件之前,打开或创建文件;写入之后,关闭该文件。

[例5.11]将温度采样值转换为以“,”分隔的格式化字符串,写入文本文件中。(1)本程序每50ms执行一次温度采集,将采样值送Chart显示。同时将采样值经FormatIntoString节点转化为保留3位小数并以“,”作为分隔符的格式字符串。该字符串送入写字符串文件节点保存,保存时可建立一个新文件保存,若已存在这个文件,则将本次采样数据追加在原文件后。采样点数由前面板上的控件设定。(2)运行程序,将文件命名为“温度数据.txt”。然后用记事本打开“温度数据.txt”文件,观察文件内容及格式。框图程序和运行结果4.读取字符串文件ReadCharactersFromFile.vi该节点用于从某个文件的特定位置(startofreadoffset)开始,读取指定个数(numberofcharacter)的字符,读完后输出字符串。numberofcharacter的默认值为-1。[例5.12]读取文本文件数据从上例创建的“温度数据.txt”文件中读取数据,并送前面板显示,同时将这些数据显示在温度曲线Graph上。注意:由于从文本文件中读出的数据是以逗号作为分隔符写入的字符串,逗号是非数值字符,所以在此例中要将读出数据显示在波形图上,必须使用字符串处理函数,从由逗号分隔的数据组成的ASCII字符串中提取有效数据,并将它们转换成数值型数组。

程序的前面板和框图程序

5.读指定行数字符串函数ReadLinesFromFile该节点用于从某个文件的指定位置(startofreadoffset)开始读取指定行数的字符串(默认值为-1:即读所有行)。该VI在读之前打开文件,在读之后关闭文件。6.读写二进制文件子模板BinaryFile读写二进制文件子模板包括能够从二进制文件中读取或向二进制文件中写入16比特(一个字)整数及单精度浮点数的VI。5.2.3中层文件操作节点及应用所谓中层文件操作节点是指具有单一文件操作功能的节点,应用较灵活。基本的文件操作包括对文件进行打开、新建、读、写以及关闭文件等。学习中层文件操作节点可以更好地了解基本的文件I/O操作过程。

常用中层文件操作节点1.打开/创建/覆盖文件Open/Create/ReplaceFile.Vi:该节点可以用来打开或覆盖一个已存在的文件,或者创建一个新文件。

filepath端口:用于指定被操作文件的路径。

②function端口:此端口决定节点的操作类型,如打开、新建还是覆盖文件。

③errorin和errorout端口:用于传递错误信息。

④refnum(文件标识符)端口:用于传递被操作文件的信息,并告诉后面的文件操作函数要对哪个文件进行操作。

⑤advisorydialog:其值为真时,每当有错误操作或在覆盖文件前,都会出现提示窗口要求确定。function端口代码的含义参数值含义0打开一个已存在的文件,如果文件不存在返回一个错误代码1打开一个文件,若不存在则创建一个新文件2创建一个新文件或覆盖一个已存在文件3创建一个新文件,若与其他文件同名则返回一个错误代码2.写文件WriteFile

该节点向文件标识符refnum指定的文件中写入数据(文本字符),写入字符的起始位置有posmode和posoffset端口参数指定。3.读文件ReadFile

该节点从文件标识符refnum指定的文件中读取数据(文本字符),count端口指定读取的字节数,posmode和posoffset端口指定读取字符的起始位置,读取的字符串由data端口返回。[例5.13]使用中层文件函数WriteFile实现对随机数的存储。使用中层文件函数WriteFile节点完成,必须按打开文件、写文件、关闭文件的顺序编写程序。本程序创建的文件保存为d:\random.txt。前面板和框图程序[例5.14]从文件中读取数据本程序采用Open/Create/ReplaceFile函数打开例5.13创建的random.txt文件(文件操作模式设置为打开模式),其框图程序和前面板运行结果如图。5.2.4数据记录文件I/O数据记录文件(datalogfile)是G语言支持的一种文件数据格式。数据记录文件类似于数据库文件,按数据记录顺序存储数据。每个记录可以是任意类型数据的组合,但所有记录都必须是同一类型数据。例如,可以设置每个记录为由两个字符串和一个数组所组成的簇。如果不需要把文件存储成可供别的软件访问的格式,把数据写入数据记录文件是一种很好的选择。使用这种数据格式,可以在LabVIEW中快速和简便地访问和操作数据文件,并且可以方便地组织具有复杂结构的数据。可参考LabVIEW7.1本身自带的例子:example\file\datalog.llb[例5.15]写记录文件应用实例该程序将一些数据保存为一个数据记录文件,此记录是一个有日期、时间和一个正弦波形数组构成的簇。

前面板框图程序介绍用到的函数节点文件对话框(FileDialog)函数:该节点显示一个文件对话框,用户可为写入文件制定路径。本例中该节点的datalogtype端口与簇节点(Bundle函数的输出端)连接,这就限定了在对话框显示的文件为数据记录文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论