1.4 Codesys在字符串1查找字符串2的位置(从左向右、从右向左)功能-CODESYS V3-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 2415|回复: 0

1.4 Codesys在字符串1查找字符串2的位置(从左向右、从右向左)功能

[复制链接]
  • TA的每日心情
    慵懒
    2017-11-9 20:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2023-9-22 22:10:58 | 显示全部楼层 |阅读模式
    1、在长字符串String1中的指定位置开始,从左向右查找短字符串String2最先出现的位置。具体功能代码如下:
    1. FUNCTION FINDP : INT
    2. VAR_INPUT
    3.         InString1 : STRING(255);          //长字符串
    4.         InString2 : STRING(255);          //短字符串
    5.         InPos     : INT;                  //查找起始位置
    6. END_VAR
    7. VAR
    8.         iPostion  : INT;
    9.         iLength1  : INT;       
    10.         iLength2  : INT;
    11. END_VAR
    12. //计算从字符串String1指定的位置开始出现String2的位置(从左往右)
    13. iLength1 := Standard.LEN(InString1);
    14. iLength2 := Standard.LEN(InString2);
    15. IF iLength1 < iLength2 OR iLength2 = 0 THEN
    16.    RETURN;
    17. END_IF;
    18. FOR iPostion := MAX(InPos,1) TO (iLength1 - iLength2 + 1) BY 1 DO
    19.         IF Standard.MID(InString1,iLength2,iPostion) = InString2 THEN
    20.                 FINDP := iPostion;
    21.                 RETURN;
    22.         END_IF;
    23. END_FOR;
    24. FINDP := 0;
    复制代码
    测试结果如下:
    1.4 Codesys在字符串1查找字符串2的位置(从左向右、从右向左)功能-1.png


    2、在长字符串String1中的最右端开始,从右向左查找短字符串String2最先出现的位置。具体功能代码如下:
    1. FUNCTION FINDB : INT
    2. VAR_INPUT
    3.         InString1 : STRING(255);          //长字符串
    4.         InString2 : STRING(255);          //短字符串
    5. END_VAR
    6. VAR
    7.         iPosition : INT;
    8.         iLength1  : INT;       
    9.         iLength2  : INT;
    10. END_VAR
    11. //计算String2在String1出现的位置(从右往左)
    12. iLength1 := Standard.LEN(InString1);
    13. iLength2 := Standard.LEN(InString2);
    14. IF iLength1 < iLength2 THEN
    15.    FindB := 0;
    16.    RETURN;
    17. END_IF;
    18. FOR iPosition := iLength1 - iLength2 + 1 TO 1 BY -1 DO
    19.         IF Standard.MID(InString1,iLength2,iPosition) = InString2 THEN
    20.            FindB := iPosition;
    21.            RETURN;
    22.         END_IF;
    23. END_FOR;
    24. FindB := 0;
    复制代码
    测试结果如下:
    1.4 Codesys在字符串1查找字符串2的位置(从左向右、从右向左)功能-2.png


       以上功能的实现依靠Standard库的字符串功能,因此查找字符串长度最大长度255。
    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|Archiver|手机版|小黑屋|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2026-10-17 13:57 , Processed in 0.159335 second(s), 50 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表