前面的文章我们介绍了字符串数据类型(西门子SCL编程入门教程连载(18)——字符串),今天这篇文章,我们来介绍下字符串的操作指令,包括:
①获取字符串当前长度指令;
②获取字符串最大长度指令;
③读取字符串左侧字符指令;
④读取字符串右侧字符指令;
⑤读取字符串中间字符指令;
以下例程中,我们假设已经定义了字符串变量tmpString和整数变量tmpLen,如下图所示:
1、获取字符串当前长度指令
我们知道,字符串的结构中,其前两个字节分别表示其最大长度和当前长度。指令LEN可以获取字符串的当前长度,并返回到输出参数中,其基本语法如下:
Out := LEN(_string_in_);
输入参数“_string_in_”可以是字符串或者宽字符串,返回值Out是整数。
要获取字符串变量tmpString的当前长度,可以使用下面的代码:
执行指令后,tmpLen的值等于10。
2、获取字符串最大长度
指令MAX_LEN可以获取字符串的最大长度,并返回到输出参数中,其基本语法如下:
Out := MAX_LEN(_string_in_);
输入参数“_string_in_”可以是字符串或者宽字符串,返回值Out是整数。仍然以前面的tmpString为例,获取其最大长度可以使用下图的代码:
执行指令后,tmpLen的值等于29。
3、读取字符串左侧字符
指令LEFT可以读取字符串左侧指定长度的字符并返回,其基本语法是:
Out := LEFT(IN:=_string_in_, L:=_int_in_);
该指令有两个输入参数:
1)IN(_string_in_):要读取的字符串;
2)L(_int_in_):要读取的字符长度;
返回值Out是读取到的字符串。
举个例子:要求读取上述字符串tmpString左侧的5个字符并返回。
首先声明字符串 tmpSubString String[15],然后使用下图的代码:
执行指令后,tmpSubsting的值为’Hello’。
4、读取字符串右侧字符
指令RIGHT可以读取字符串右侧指定长度的字符并返回,其基本语法是:
Out := RIGHT(IN:=_string_in_, L:=_int_in_);
该指令有两个输入参数:
1)IN(_string_in_):要读取的字符串;
2)L(_int_in_):要读取的字符长度;
返回值Out是读取到的字符串;
举个例子:在上述基础上,读取字符串tmpString右侧的4个字符,并存放到tmpSubString中,可以使用下图的代码:
执行指令后,tmpSubsting的值为’Jack’。
5、读取字符串中间字符
指令MID可以从字符串的指定位置开始,读取指定长度的字符并返回,其基本语法是:
Out := MID(IN:=_string_in_, L:=_int_in_, P:=_int_in_);
该指令有三个输入参数:
1)IN(_string_in_):要读取的字符串;
2)L(_int_in_):要读取的字符长度;
3)P(_int_in_):读取的起始位置,编号从1开始;
返回值Out是读取到的字符串。
举个例子:假设要读取字符串’Hello China,you are great’从第7个字符开始、长度为5的字符,可以使用下图的代码:
执行指令后,tmpSubsting的值为’China’。
字符串的操作指令还包括插入字符串指令(INSERT)和字符替换指令(REPLACE),限于篇幅就不一一介绍了。如果你感兴趣的话,可以看下我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》,第11.2节有很详细的介绍。点击左下角【阅读原文】可以看到该书的详细介绍,购买链接如下:
发表评论