在格式化写入字符串(1)中,我们讨论了数值转换为格式字符串.。在格式化写入字符串(2)中,我们讨论了时间、日期转换为格式字符串。今天我们讨论字符串转化为带格式的字符串以及其综合运用的问题。

一、特殊转义字符

我们注意到在字符串函数选板中,LABVIEW提供了一些字符串常量。使用过早期版本的朋友们肯定注意到了现在的字符串常量比早期版本多了很多,字符串常量见下图:

Picture
上图中的空格常量就是后来加入的,空格常量与其它字符串常量不同。空格常量实际上是一个内置的VI,我们打开它的程序框图看一下,程序框图如下图所示:
 
Picture
容易看出,空格常量返回的是方式下的s。如果选择HEX方式,则为0x20。熟悉ASCII表的朋友们一眼就可以看出,这正是空格的ASCII。显然使用s表示空格比ASCII更容易理解、更容易使用。s称作空格的转义字符。

我们再看看回车键常量、换行符常量、行结束符常量和制表符使用的什么形式的转义字符。

Picture
很明显,我们可以直接使用转义字符代替这些常量,在格式化字符串时,使用转义字符远比常量方便的多。在LABVIEW中,制表符占用两个空格位置,这与编程语言有关,有些是4个甚至是8个空格,所以一般在格式字符串时,指定空格比TAB更不受编译环境的影响。

下表是常用的转义字符:

Picture
我们之所以讨论这些转义字符,是因为在格式化写入字符串函数中,会经常使用转义字符来替代上述常用的字符串常量。尤其是在有关通信的应用中,会经常出现一些不可显示字符,不显示字符参考下面的链接:
http://www.eefocus.com/csxcs366/blog/08-04/148579_b97a6.html

对于不可显示字符,除了使用HEX方式直接输入ASCII外,也可以直接使用\格式。比如\1B表示ESC,\00表示NULL等等。

二、格式字符串

字符串的格式化码为%s

 %s表示格式化写入字符串函数输入的参数为字符串,下面的例子输入两个字符串,中间用空格连接。

Picture
三、规定输入字符串的长度和输出字符串的长度。

规定字符串长度的格式化码为%10.4s.

其中10表示字符串的总长度为10个字符,不足用空格填充。4表示去输入字符串中4个字符,其它丢弃。
规定字符串长度是非常常用的,一些编程语言都会提供生成空格的函数,用来保证字符串的长度。这在日志文件和报警窗口中经常会遇到类似的应用。

Picture
四、变量顺序

使用格式化写入字符串函数时,一般会有多个输入参数,多个输入参数的次序也是不固定的。其中可能有些参数会多次使用,这种情况下可以使用变量顺序格式化码。

变量顺序格式化码%n$,其中n表示第n个参数,从1开始。

下面分几种情况介绍一下变量顺序的应用。
1、改变变量的先后次序。
Picture
上图中,显示的字符串顺序为:第2个参数、第1个参数、第3个参数。

2、重复、多次显示同一个参数或者几个参数。
Picture
3、不同格式格式化同一参数。

Picture
通过不同的格式化码,格式化写入字符串函数具有极其强大的能,可以替代多个函数。尤其是在需要特殊格式要求的应用中,比如创建SQL语句、仪器通信命令等方面,应用非常广泛,需要重点关注。

 





Leave a Reply.