1.字符串的结构
STRING(字符串)数据有2B的头部,后面是最多254B的ASCII字符代码。字符串的首字节是字符串的最大长度,第2个字节是当前长度,即当前实际使用的字符数。当前长度必须小于等于最大长度。字符串占用的字节数为最大长度加2。字符串默认的最大长度为254个字符,定义字符串的最大长度可以减少它占用的存储空间。例如定义了字符串“MyS-tring[10]”之后,字符串MyString的最大长度为10个字符。
2.定义字符串
执行字符串指令之前,首先应定义字符串。不能在变量表中定义字符串,只能在代码块的界面区或全局数据块中定义它。生成符号名为DB_1的全局数据块,在DB_1中定义字符串变量string1~string3(见图4-61)。字符串的数据类型String[18]中的“[18]”表示其最大长度为18个字符,加上两个头部字节,共20B,因此string1的起始地址(偏移量Offset)为:DBB200,String2的Offset为DBB220。如果字符串的数据类型为String(没有方括号),每个字符串变量将占用256B。
图4-61 在数据块中生成字符串变量
在OB1的界面区定义3个字符串变量,其最大长度均为18个字符。
3.LEN指令(求字符串长度)
指令LEN用输出参数OUT(整数)提供输入参数IN指定的字符串的当前长度,空字符串()的长度为0。执行图4-62中的LEN指令后,MW172中是输入的字符串的长度(7个字符)。
图4-62 字符串指令a)
4.CONCAT指令(合并字符串)
CONCAT指令将输入参数IN1和IN2指定的两个字符串连接在一起,然后用参数OUT输出连接后的字符串(见图4-62)。合并后字符串IN1和IN2分别是连接后的字符串的左部分和右部分。如果连接后的字符串的长度大于允许的最大长度,则将它限制在最大长度,并将ENO设置为0。
5.LEFT指令(左子字符串)
指令LEFT用参数OUT指定的字符串来输出参数IN指定的字符串的前L个字符,L的数据类型为Int。执行图4-62中的LEFT指令后,输出OUT中是IN输入的字符串左边的5个字符。字符串指令对异常情况的处理见STEP 7 Basic中的在线帮助。
6.RIGHT指令(右子字符串)
指令RIGHT用参数OUT指定的字符串输出字符串IN的最后L个字符,L的数据类型为Int。执行图4-63中的RIGHT指令后,输出OUT中是字符串IN右边的4个字符。(www.xing528.com)
图4-63 字符串指令b)
7.MID指令(提供字符串的中间部分)
指令MID用参数OUT指定的字符串输出字符串IN从第P个字符开始的L个字符。执行图4-63中的MID指令后,输出OUT中是IN输入的字符串从第2个字符开始的中间4个字符。
8.DELETE指令(删除子字符串)
指令DELETE从字符串IN中第P个字符开始,删除L个字符。参数OUT输出剩余的子字符串。执行图4-63中的DELETE指令后,IN输入的字符串被删除从第3个字符开始的2个字符后,然后输出到OUT指定的字符串。
9.INSERT指令(插入字符串)
指令INSERT将字符串IN2插入到字符串IN1中第P个字符之后。执行图4-64中的IN-SERT指令后,IN2指定的字符串ABC被插入到IN1指定的字符串′abcde′第3个字符之后。
10.REPLACE指令(子字符串替换)
指令REPLACE用字符串IN2替换字符串IN1中从字符位置P开始的L个字符,替换的结果用参数OUT输出。执行图4-64中的REPLACE指令后,字符串IN1中从第3个字符开始的3个字符(CDE)被IN2指定的字符串1234代替。
图4-64 字符串指令c)
11.FIND指令(查找子字符串)
指令FIND提供字符串:IN2在字符串IN1中的位置。查找从字符串IN1的左侧开始,输出参数OUT(整数)返回第一次出现字符串IN2的位置。如果在字符串IN1中未找到字符串IN2,则返回零。
执行图4-64中的FIND指令后,查找到IN2指定的字符串DEF从IN1指定的字符串AB-CDEFGHI的第4个字符开始。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。