第七章字符串与文件I/O7.1字符串控件与节点7.2文件I/O第七章字符串与文件I/O第七章字符串与文件I/O7.1字符串控件与节点字符串是ASCII字符的集合。如同其他语言一样,LabVIEW也提供了各种处理字符串的功能,7.1.1字符串控件1.创建字符串对象可以在Controls→Modern→String&Path中创建如下字符串控制对象和显示对象。第七章字符串与文件I/O还可以使用操作工具或者标签工具输入或者改变字符串控制对象中的文本。用移位工具拖曳字符串控制对象和显示对象的边角可以增大它们的面积。第七章字符串与文件I/O2.字符串控件菜单在前面板字符串对象的右键弹出菜单中,可以调整字符串控件的显示模式和外观。第七章字符串与文件I/Ob)“\”CodesDisplay:控制码显示在该模式下,把“\”及其后接的字符理解为格式化字符。这种模式可显示一些不可见字符。具体格式及含义见下表:(1)显示模式在字符串设置菜单中,共有4中模式:a)NormalDisplay是控件的缺省模式,在该模式下,显示所有可显示的输入字符。有些字符在该模式下是不可显示的,如制表符、ESC等第七章字符串与文件I/O格式含义\00-FF接两位十六进制整数(大写),显示该值的ASCII字符\b退格符(BackSpace,ASCIIBS,相当于\08)\f进格符(Foemfeed,ASCIIFF,相当于\0C)\n换行符(Linefeed,ASCIILF,相当于\0A)\r回车符(Return,ASCIICR,相当于\0D)\t制表符(Table,ASCIIHT,相当于\09)\s空格符(Space,相当于\20)\\反斜线(Backslash,ASCII\,相当于\5C)第七章字符串与文件I/O控制码模式正常模式ASCIIBF+FOREASCII\B+efore\b(退格)+efore\非法字符,忽略“\”\r(回车)(ASCII3F)=?\\r=\r(反斜线)第七章字符串与文件I/Oc)PassWordDisplay:口令显示在该模式下,键入的字符以“*”显示,主要用于输入口令或密码。拷贝或剪切时,出现在剪切板上的也是“*”。第七章字符串与文件I/Od)HexDisplay:十六进制显示在该模式下,显示输入字符对应的十六进制ASCII码。输入正常模式输出十六进制模式输入十六进制模式输出正常模式第七章字符串与文件I/O(2)LimittosingleLine在该选项有效后,可以防止输入回车符。因为在VI通信时,回车符意味着通信结束。注意在控制码模式下,\r仍然有效。(3)UpdateValueWhileTyping该选项有效后,输入或更改每一个字符的结果都会同步地传递到端口上,即此时是逐个字符更新到程序端口上的。缺省情况下(此项未选中),控件只在字符串输入结束后(回车),才会把结果传递给其它端口。第七章字符串与文件I/O3.字符串控件的属性设置通过在框图中设置节点的属性,可以改变字符串控件的显示外观,这样可在程序中动态调整字符串控件的属性。①文字大小(TextSize)用来设置字符串控件的尺寸。其输入为含两个无符号整数的簇,分别设置字符串控件的宽和高。也可以由Width和Height两个节点来完成。第七章字符串与文件I/O②滚动位置(ScrollPosition)移动文本,其输入为无符号整数N。使文本的第N行处于字符串控件的顶端。动态改变节点的输入,可以使文本滚动显示。第七章字符串与文件I/O③选择字符(Selection)用来选择一部分字符。其输入为含两个无符号整数的簇,分别设置字符串开始和结束位置。④显示风格(DisplayStyle)用来选择显示模式。输入值0、1、2、3分别表示正常显示、控制码显示、口令显和十六进制码显示。第七章字符串与文件I/O⑤滚动条(ScrollBar)确定是否显示滚动条。⑥文字颜色(DisplayStyle)用来设置字符串显示颜色。其输入为含两个无符号整数的簇,分别为前景颜色和背景颜色。第七章字符串与文件I/O7.1.3字符串节点1.基本字符串操作节点①求字符串长度节点(StringLength)返回输入字符串的长度。输入可以是字符串(单行或多行),可以是字符串数组,也可以是字符串簇。注意:输入字符串长度包括换行符。例8.1.1输入一个两行字符串,求其长度。第七章字符串与文件I/O②字符串合并(ConcatenateString)把输入的多个字符串合并成一个字符串。输入可以单一字符串、字符串数组或是字符串簇。注意:输入字符串长度包括换行符。例7.1.3输入3个字符串,将其合并为一个字符串。第七章字符串与文件I/O③子字符串提取(StringSubset)从输入的字符串的Offset(0)位置开始提取规定长度Length的字符串。当Length=0时,不操作。节点图标及接口:第七章字符串与文件I/O④格式化的时间字符串(FormatDate/TimeString)按给定格式输出时间,包括年月日时分秒和星期。节点图标及接口:第七章字符串与文件I/O时间输出格式表如下:格式含义格式含义%d显示日期%a显示星期%m显示月份%H显示24小时制的小时%y显示两位数的年份%I显示12小时制的小时%Y显示四位数的年份%M显示时间的分%x按本国习惯显示日期%S显示时间的秒%X按本国习惯显示时间%P显示AM/PM标志%c按本国习惯显示日期/时间第七章字符串与文件I/O例7.1.4第七章字符串与文件I/O⑤字符的大小写转换(ToUpperCase,ToLowerCase)ToUpperCase节点把输入字符串中的小写字母转换为大写字母;ToLowerCase节点把输入字符串中的大写字母转换为小写字母。节点图标及接口:第七章字符串与文件I/O⑥子字符串的替换(ReplaceSubstring)能实现字符串的插入、删除、替换和抽取,节点图标及接口:第七章字符串与文件I/O第七章字符串与文件I/O⑦字符串的查找与替换(SearchandReplaceString)能实现字符串的查找与替换,节点图标及接口:第七章字符串与文件I/O2.指令、参数整合节点①从多行字符串中提取1行(PickLine)在输入的多行字符串中multi-linestring中,提取一个指定行(lineindex),并把这行加到字符串string后,组成一个新的字符串输出。节点图标及接口:第七章字符串与文件I/O第七章字符串与文件I/O②从字符串数组中提取1行(IndexStringArray)把字符串数组stringarray中指定单元(index)的字符串提取,并把这行加到字符串string后,组成一个新的字符串输出。节点图标及接口:第七章字符串与文件I/O第七章字符串与文件I/O③条件选择字符串并扩展(AppendTrue/FalseString)如果selector输入为True,把truestring字符串加到字符串string后;如果selector输入为False,把falsestring字符串加到字符串string后,组成一个新的字符串输出。节点图标及接口:第七章字符串与文件I/O第七章字符串与文件I/O④多字符串的格式化整合(FormatintoString)该节点把多个输入与initial合并成一个字符串输出。输入可以是字符串,也可以是数值。输出的格式由格式化字符串决定。节点图标及接口:第七章字符串与文件I/O格式化字符串含义表:格式含义%f十进制浮点数%d十进制整数%x十六进制整数%o八进制整数%s二进制整数%[A-Za-z]字符串%[∧A-Za-z]由英文字母组成的字符串abcd由非英文字母组成的字符串%%百分号%%,:%?:十进制浮点数的小数点的形式第七章字符串与文件I/O不同格式化字符串输入时的输出FormatStringArgument(s)ResultingStringScore=%2d%%87Score=87%Level=\n-7.2eV0.03642Level=3.642e-2VName:%s,%sSmithJhonName=Smith,JhoneTemp:%05.1f%s93.793FahrenheitTemp:096.8FahrenheitString:%10.5sHello,world___Hello第七章字符串与文件I/O3.表达式分析、控制命令节点①表达式分析(ScanFormString)根据格式化字符串formatstring的要求来分析输入字符串,并将其直接转化为相应的类型。在搜索时遇到第一个不匹配的类型时,停止搜索,余下的字符在remainingstring中输出。节点图标及接口:第七章字符串与文件I/O不同格式化字符串输入时的输出输入字符串格式输出剩余字符串abc,xyz12.3e27200%s,%s%f%2dAbcXyz12.3e27200Q+1.27e-3tailQ%ft1.27e-3ail0123456789%3d%3d123456789Set3,46%,;%s%fSet3.46Set49.4.2Set%d49.4.2第七章字符串与文件I/O②子字符串条件查找(MatchPattern)根据输入regularexpression定义的条件,从offset位置开始检查输入字符串是否存在满足该条件的子字符串。如果存在,则在matchsubstring中返回该子字符串,offsetpastmacth返回aftersubstring后第一个字符的位置。否则offsetpastmacth返回-1。regularexpression可以使字符串,也可是通配符。节点图标及接口:第七章字符串与文件I/O③特征字符串查找(ScanStringForToken)节点图标及接口:这个节点用于分析查找输入字符串中的一些特征字符串,可用来分析运算表达式字符串中的数字、变量、运算符等。输入输出端口含义:operators:字符串数组输入,用来列举特征字符串。delimiters:字符串数组输入,用来列举分隔符,在两个分隔符之间的子字符串就是一个特征第七章字符串与文件I/O子字符串。Delimiters的缺省值为%s,%t,%r,%n(空格、制表符、换行、回车)。Offsetpasttoken:上一个特征子字符串结束的位置,即下一个特征子字符串的起始位置。tokenstring:输出查找到的特征子字符串。tokenindex:如果找到的特征子字符串是operators中列举的,则在tokenindex中输出子字符串在operators数组中的位置,否则输出-1。若搜索到字符串尾,则输出-2。Allowemptytokens:iftrue,在输入中有两个相临的分隔符时,将在tokenstring中返回一个空值。usecacheddelim/operdata?:iftrue,将有一个缓冲区来保存delim和oper中的数据。分析开始时,保证该值为false。第七章字符串与文件I/O例7.1.7ScanStringForToken节点用法。第七章字符串与文件I/O第七章字符串与文件I/O4.电子表格字符串操作节点①数组到电子表格(ArraytospreadsheetString)电子表格是用文本方式记录数据的。它把数据分成很多行,行与行之间用换行符分隔,同一行的不同数据单元用制表符分隔。该节点用于把数组中的数值或字符串用电子表格的形式表示。节点图标及接口:第七章字符串与文件I/O例7.1.8把一个浮点数的数组转换成电子表格。第七章字符串与文件I/O②电子表格到数组(spreadsheetStringtoArray)该节点与spreadsheetStringtoArray节点的功能相反,它把一个电子表格转化成一个数组。数组类型在arraytype中定义,缺省为二维的浮点数数组。节点图标及接口:第七章字符串与文件I/O7.2文件I/O7.2.1基本概念及术语1.路径及路径控件(PathControlandIndictor)文件名:文件的名