首页 历史故事字符串和字符指令详解

字符串和字符指令详解

【摘要】:字符串的第一个字符可以是有效数字或符号。表5-12 参数FORMAT的可能值及其含义3.VAL_STRG指令VAL_STRG指令将整数值、无符号整数值或浮点值转换为相应的字符串表示法。转换后的字符串将从字符偏移量计数P位置开始替换OUT字符串中的字符,一直到参数SIZE指定的字符数。如果参数P大于OUT字符串的当前大小,则会添加空格,一直到位置P,并将该结果附加到字符串末尾。如果达到了最大OUT字符串长度,则转换结束。表5-14 字符串操作指令

字符串转换指令中,可以使用表5-11所示指令将数字字符串转换为数值或将数值转换为数字字符串。

表5-11 字符串转换指令

978-7-111-34922-8-Chapter05-49.jpg

1.S_CONV指令

使用S_CONV可将输入IN的值转换成在输出OUT中指定的数据格式。S_CONV指令可实现以下转换。

(1)字符串(STRING)转换为数字值

在输入IN中指定的字符串的所有字符都将进行转换。允许的字符为数字0~9、小数点以及加号和减号。字符串的第一个字符可以是有效数字或符号。前导空格和指数表示将被忽略。无效字符可能会中断字符转换,此时,使能输出ENO将设置为“0”。可以通过选择输出OUT的数据类型来决定转换的输出格式。

(2)数字值转换为字符串(STRING)

通过选择输入IN的数据类型来决定要转换的数字值格式。必须在输出OUT中指定一个有效的STRING数据类型的变量。转换后的字符串长度取决于输入IN的值。由于第一个字节包含字符串的最大长度,第二个字节包含字符串的实际长度,因此转换的结果从字符串的第三个字节开始存储。输出数值为正数时不带符号。

(3)复制字符串

如果在指令的输入端和输出端均输入STRING数据类型,则输入IN的字符串将被复制到输出OUT。如果输入IN字符串的实际长度超出输出OUT字符串的最大长度,则将复制IN字符串中完全适合OUT的字符串的那部分,并且使能输出ENO将设置为“0”值。

2.STRG_VAL指令

STRG_VAL(字符串到值)指令将数字字符串转换为相应的整型或浮点型表示法。转换从字符串IN中的字符偏移量P位置开始,并一直进行到字符串的结尾,或者一直进行到遇到第一个不是“+”、“-”、“.”、“,”、“e”、“E”或“0”~“9”的字符为止,结果放置在参数OUT中指定的位置;同时,还将返回参数P作为原始字符串中转换终止位置的偏移量计数。必须在执行前将STRING数据初始化为存储器中的有效字符串。无效字符可能会中断转换。

使用参数FORMAT可指定要如何解释字符串中的字符,其含义如表5-12所示,注意只能为参数FORMAT指定USINT数据类型的变量。

表5-12 参数FORMAT的可能值及其含义

978-7-111-34922-8-Chapter05-50.jpg

3.VAL_STRG指令

VAL_STRG(值到字符串)指令将整数值、无符号整数值或浮点值转换为相应的字符串表示法。参数IN表示的值将被转换为参数OUT所引用的字符串。在执行转换前,参数OUT必须为有效字符串。

转换后的字符串将从字符偏移量计数P位置开始替换OUT字符串中的字符,一直到参数SIZE指定的字符数。SIZE中的字符数必须在OUT字符串长度范围内(从字符位置P开始计数)。该指令对于将数字字符嵌入到文本字符串中很有用。例如,可以将数字"120"放入字符串"Pump pressure=120 psi"中。

参数PREC用于指定字符串中小数部分的精度或位数。如果参数IN的值为整数,则PREC指定小数点的位置。例如,如果数据值为123而PREC=1,则结果为"12.3"。

对于REAL数据类型支持的最大精度为7位。

如果参数P大于OUT字符串的当前大小,则会添加空格,一直到位置P,并将该结果附加到字符串末尾。如果达到了最大OUT字符串长度,则转换结束。

表5-13列出了参数FORMAT的可能值及其含义。

表5-13 参数FORMAT的可能值及其含义

978-7-111-34922-8-Chapter05-51.jpg

字符串操作指令如表5-14所示。

表5-14 字符串操作指令

978-7-111-34922-8-Chapter05-52.jpg