最近在Codesys中编程中遇到了字符串的处理问题,学习了一些前辈方法,顺便记录一下:
readdataMid:="[shake:A1;]";
1.查找字符串是否存在对应的字符串(单独使用需要指定字符串位置,即协议定死)
verifyStr: STRING(5);
verifyStr:=(MID(readdataMid,5,1));
bverifyStrOk:=(verifyStr='shake');
PS:获取字符串中1的的位置后面5个字符的位置,形成字符串,赋值给verifystr ,同时通过一个布尔值判断是否为指定字符串
MID方法:MID(STR(string),LEN(int),POS(int))的意思是:从STR字符串中以位置POS处的字符开始检索长度为LEN字符。
2.查找指定字符位置位置
find1,find2:int;
find1:=FIND(readdataMid,'[');
PS:查询readdatamid字符串中,"["的位置,返回给find1
FIND方法:FIND(STR1(string),STR2(string))的意思是:查找STR2首次出现在STR1中的第一个字符的位置。如果在STR1中找不到STR2,则返回0。
3.拼接字符串
readdataMid2:string(99);
readdataMid2:=INSERT(STR1:= readdataMid, STR2:= 'B0;C1;', POS:=find2-1 );
PS:在readdataMid字符串中插入 'B0;C1;',位置为' ] ' 的位置之前。即形成新的字符串"[shake:A1;B0;C1;]";形成校验
INSERT方法:INSERT(STR1(string),STR2(string),POS(int))的意思是:在位置POS之后将STR2插入STR1。
以上就是Codesy中使用字符串的方法,假设是一种未知字符串,就需要使用1和2方法来同时校验,先获取指定位置,在想办法拼接。不过我目前在工业行业,协议基本上定义好的,出现这种情况较少
第一次写技术类分享,欢迎一起讨论 。扣扣:491072135