3.5 字符串型数据
3.5.1 字符串与路径
字符串是LabVIEW中一种基本的数据类型,LabVIEW为用户提供了功能强大的字符串控件和字符串运算功能函数。
路径也是一种特殊的字符串,专门用于对文件路径的处理。在前面板上右击,打开“控件”选板,在“新式”下可以看到“字符串与路径”子选板。“字符串与路径”子选板中共有3种对象供用户选择:字符串输入/显示、组合框和文件路径输入/显示。其中字符串和路径控件用于创建文本输入框和标签、输入或返回文件的地址,组合框可用于对输入项目进行选择。
(1)字符串控件
字符串控件用于输入和显示各种字符串。其属性配置选项卡与数值控件、布尔控件相似,读者可参考前面的介绍,此处不再详细说明。
右击字符串控件,在弹出的快捷菜单中,关于定义字符串的显示方式有4种,每种显示方式及含义如下。
1)正常显示:在这种模式下,除了一些不可显示的字符,如制表符、声音、Esc等,字符串控件显示可打印的所有字符。
2)“\”代码显示:选择这种显示模式,字符串控件除了显示普通字符以外,用“\”形式还可以显示一些特殊控制字符,表3-2列出了一些常见的转义字符。
3)密码显示:密码模式主要用于输入密码,该模式下键入的字符均以“*”显示。
4)十六进制显示:将显示输入字符对应的十六进制ASCII码值。
注意:在LabVIEW中,如果反斜杠后接的是大写字符,并且是一个合法的十六进制整数,则把它理解为一个十六进制的ASCII码值;如果反斜杠后接的是小写字符,而且是表中的一个命令字符,则把它理解为一个控制字符;如果反斜杠后接的既不是合法的十六进制整数,又不是表中的任何一个命令字符,则忽略反斜杠。
表3-2 “\”代码转义字符列表
(2)路径控件
路径控件用于输入或返回文件或目录的地址。路径控件与字符串控件的工作原理相似,但LabVIEW会根据用户使用操作平台的标准句法将路径按一定格式处理。路径通常分为以下几种。
1)非法路径:如果函数未成功返回路径,该函数将在显示控件中返回一个非法路径值,非法路径值可作为一个路径控件的默认值来检测用户何时未提供有效路径,并显示一个带有选择路径选项的文件对话框。使用文件对话框函数显示文件对话框。
2)空路径:空路径可用于提示用户指定一个路径,将一个空路径与文件I/O函数相连时,空路径将指向映射到计算机的驱动器列表。
3)绝对路径和相对路径:相对路径是文件或目录在文件系统中相对于任意位置的地址。绝对路径描述从文件系统根目录开始的文件或目录地址。使用相对路径可避免在另一台计算机上创建应用程序或运行VI时重新指定路径。
(3)组合框控件
组合框控件可用来创建一个字符串列表,在前面板上可按次序循环浏览该列表。组合框控件类似于文本型或菜单型下拉列表控件。但是,组合框控件是字符串型数据,而下拉列表控件是数值型数据。
在字符串控件中最常用的是字符串输入和字符串显示两个控件,如果需要为字符串添加背景颜色可以使用“工具”选板中的“设置颜色”工具。如果需要修改字符串控件中文字的大小、颜色、字体等属性,需要先使用“工具”选板中的“编辑文本”工具选定字符串控件中的字符串,然后打开前面板工具栏中“文本设置”工具栏,选择符合用户需求的字体属性。
字符串控件在默认情况下为正常显示状态,显示字符的一般形式,在字符串中可以直接按〈Enter〉或空格键,系统自动根据键盘动作为字符串创建隐藏的“\”形式的转义控制字符。右击控件,在弹出的菜单中可以选择其他文本格式。
3.5.2 列表与表格控件
用户可在前面板控件选板中找到“列表、表格和树”子选板,该选板包括了列表、表格、树形控件这3种表单形式,如图3-31所示。
图3-31 列表、表格和数子选板
表格是由字符串组成的二维数组,由多个单元格组成,每个单元格可以输入一个字符串。学会熟练使用表格是记录测量数据和生成报表的基础。
双击表格控件单元格可以对其进行输入,右击表格控件,在弹出的快捷菜单中选择“显示项”下的“行首、列首”,可以显示行首和列首。行首和列首可以作为表格的说明性文字。
通过使用LabVIEW的Express技术中的Express表格可以方便地构建表格,把数据加入表格中。
【例3-5】 利用表格记录时间。
操作步骤如下。
1)新建一个VI,在结构中选择For循环放置于程序框图中。
2)在控件选板中选择“列表、表格和树”子选板中的Express表格函数,放置于前面板,此时可以在程序面板中看到相应的Express表格函数。
3)将Express表格函数移入For循环中。在函数选板中选择“编程→数值”子选板中选择随机数函数,连接到表格的信号输入端。
4)在“编程→定时”子选板中选择定时函数,并为其输入设为1000。
5)在For循环的循环总数输入端创建一个输入控件,设为10。
6)运行程序,查看运行结果。
程序框图如图3-32所示,运行结果如图3-33所示。
图3-32 利用表格记录时间程序框图
图3-33 表格记录时间及随机数
列表框、多列列表框的使用方法和表格类似,不同的是表格控件输入和显示的是字符串,而列表框、多列列表框输入和显示的是长整型的数据类型。
树形控件用于显示项目的层次结构,默认情况下有多个列首和垂直线。它通常把第一列作为树形控件的树形目录菜单,第二列作为说明项使用。用户在树形控件上单击就可以在非运行状态进行添加和删除菜单项,在菜单项上右击,在弹出的快捷菜单中选择缩进项和移出项可以创建菜单项的结构层次,这点和菜单编辑器的使用方法类似。
3.5.3 字符串函数
LabVIEW中提供了丰富的字符串操作函数,这些函数位于函数选板下字符串子选板中,如图3-34所示。
图3-34 字符串子选板界面
下面对一些常用的字符串函数的使用方法进行简要的介绍。
(1)字符串长度
该函数的功能是用于返回字符串、数组字符串、簇字符串所包含的字符个数。图3-35所示为返回一个数组字符串的长度。字符串长度函数有时被用于作为其他函数如For循环的输入条件使用。
图3-35 字符串长度函数的使用
(2)连接字符串
该函数的功能是将两个或多个字符串连接成一个新的字符串,拖动连接字符串函数下边框可以增加或减少字符串输入端个数,如图3-36所示。如果连接的字符串中需要换行,则可以在函数的输入端两个需要换行的字符串之间添加一个端口,接入回车键常量。
图3-36 连接字符串函数的使用
(3)截取字符串
该函数的功能是返回输入字符串的子字符串,从偏移量位置开始,到字符串结束为止,如图3-37所示。
图3-37 截取字符串函数的使用
(4)替换子字符串
该函数的功能是插入、删除或替换子字符串,偏移量在字符串中指定,可以显示被替换的子字符串,如图3-38所示。
图3-38 替换子字符串函数的使用
(5)搜索替换字符串
搜索替换字符串函数的接线端子如图3-39所示。该函数的功能是将一个或所有子字符串替换为另一个子字符串。如需包括多行布尔输入,则可通过右击函数选择正则表达式实现。和替换子字符串函数一样,该函数也用于查找并替换指定字符串。
图3-39 搜索替换字符串函数的接线端子
该字符串可用于多处修改错误拼写的字符串,比替换子字符串函数要方便。图3-40所示为使用替换子字符串和搜索字符串函数进行字符串的替换。
图3-40 两种替换子字符串方法的实现
(6)格式化日期/时间字符串
该函数的功能是使用时间格式代码指定格式,并按照该格式将时间标识的值或数值进行显示。图3-41所示的时间格式化字符串为空,此时系统使用默认值,输出的为系统当前的日期和时间。其时间标识输入端通常连接一个获取日期时间函数(位于函数选板下的“定时”子板中),UTC格式可以输入一个布尔值,当输入为“真”时,输出为格林尼治标准时间,默认情况输入为“假”,输出为本机系统时间。通过对时间格式化字符串的不同输入,可以提取时间标识部分的信息,如输入字符串为%a显示星期几,其他的输入格式与对应的显示信息可以参照表3-3。
表3-3 时间格式代码列表
图3-41 日期/时间的获得
(7)扫描字符串
扫描字符串函数的接线端子如图3-42所示。其功能是扫描输入字符串,然后根据格式字符串进行转换。例如可以将数字字符串转变为数值。格式字符串有一定的输入语法,读者可参照帮助系统手写这些格式字符串语句,也可以双击框图中的函数选板,在弹出的窗口中进行字符串格式设置。单击添加新操作或删除按钮可以增加或减少输出端子。在已选操作中可以选择扫描格式,如果对话框提供的扫描模式不符合用户需求,也可以在窗口下端的“对应的扫描字符串”对话框中自行设置字符串格式。
图3-42 扫描字符串函数的接线端子
(8)数值至小数字符串转换
该函数的功能是将数字转换为小数格式的浮点型字符串,至少为“宽度”个字符,如有需要可以适当加宽。图3-43所示由于数字宽度不够,因此函数经过近似处理后在显示的数字左侧添加了3个空格。“字符串/数值转换”子选板的函数可以把字符串转换为各种数值类型,也可以把数值转换为各种形式的字符串。
图3-43 数值至小数字符串转换函数的使用