搬家第42天-citect使用cicode脚本实现字符替换功能

前段时间我在学习练习citect2018时候,如果是一个包含工程,那么可以使用字符串替换函数strreplace(字符串,被替换的字符串,替换为的字符串),这个函数是包含工程内自带的,citect2018本身也是没有的,我在cicode帮助文件中的字符串函数库里面是没有查询到这个函数的。现在现场有一个古老的citect6版本,要实现一个功能,其中需要用到字符串替换函数。为了做这个功能,也为了兼容操作系统,我把电脑操作系统降级成为windows XP,安装了citect6,这个老版本中自然也不会包含字符串替换函数,只有自己写一个了,好在经过摸索实现了,我把代码放在下面,有类似需要的朋友可以参考一下。
FUNCTION StrReplaced(STRING Strin,STRING Strfind,STRING strrpl)
INT LenStrin,LenstrFind,Lenstrrpl
INT beginAddr,strAddr
INT i
STRING theStrLeft,thestrright,theStrMid
Lenstrin=StrLength(Strin)
LenstrFind=StrLength(strfind)
Lenstrrpl=StrLength(strrpl)
beginAddr=StrSearch(0,Strin,Strfind)//从第0个字符开始查找
IF Lenstrin=0 OR (Lenstrin
Message("alarm","请确认信息正确",48)
ELSE
WHILE beginAddr<>-1 DO
IF beginAddr=0 THEN
theStrLeft=""
theStrMid=strrpl
thestrright=StrRight(Strin,Lenstrin-LenstrFind)
Strin=theStrMid+thestrright
Lenstrin=StrLength(Strin)
beginAddr=StrSearch(Lenstrrpl-1,Strin,Strfind)
ELSE
theStrLeft=StrLeft(Strin,beginAddr)
theStrMid=strrpl
thestrright=StrRight(Strin,Lenstrin-beginAddr-1)
Strin=theStrLeft+theStrMid+thestrright
Lenstrin=StrLength(Strin)
beginAddr=StrSearch(beginAddr,Strin,Strfind)
END
END
END
Message("alarm",Strin,48)
END
实际应用的时候,需要稍微改造一下,比如找不到需要替换的字符串,肯定不能像现在这样弹出一个警告框。
经过测试,可以实现功能。
 
顺带说一下,这个6.0版本安装程序真的不好找,施耐德销售也没有找到,最后还是同事有珍藏。我把安装软件放到网盘了,有需要的朋友也可以去下载。
链接:https://pan.baidu.com/s/1ghq3OA4uIq31mU8crewFLg 
提取码:ivun
 
 
2019.12.24 补充一下:昨晚我看了一下citect历代版本发展介绍的一个文档,5.9版本就有了strreplace函数,至于为什么这个函数在cicode帮助文件找不到,那就不知道了。
posted @ 2021-03-11 10:30  来自金沙江的小鱼  阅读(430)  评论(0编辑  收藏  举报