CoDeSys python脚本-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

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

CoDeSys python脚本

[复制链接]
  • TA的每日心情
    开心
    2017-11-20 22:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2024-8-9 23:30:29 | 显示全部楼层 |阅读模式
    经常使用CodeSys编程,不免要去看别人的代码。

    有的代码中根本没有代码缩进的概念,而有的代码缩进的太多,而又没有规律,看着头晕。

    给检查BUG带来了很大的麻烦。



    网上类似的代码格式化软件很多,不乏精品,可是没找到支持CodeSys中ST语言的。(有知道的朋友告诉我一声啊!)

    正在学习Python,所以自己试着写了一个程序,实现代码的自动排版。

    这个代码仅仅实现了IF、ELSE、ELSIF、END_IF的缩进。后续正在研究中...



    代码的实现很简单,方法也比较笨...

    第一步:使用string模块中的strip函数,删除每一行的行首和行尾的空格

    第二步:计算哪行代码中出现了IF、ELSE、ELSIF、END_IF等关键字,根据关键字的不同进行不同的缩进。

    只是一个想法,后续版本待晚上回家继续研究.... O(∩_∩)O~

    [Python] 纯文本查看 复制代码
     #coding:gb2312
    import string
    text = open("test1.txt",'r')
    text1 = text.readline()
    lst1 = []
    #---------------------------------
    #删除行首和行末的空格
    while (text1 != ''):
    #print text1
    lst1.append(string.strip(text1))
    text1 = text.readline()
    
    indent = 0
    for i in lst1:
    if i[:3] == 'IF ':
    i = ' '*indent + i
    indent += 2
    elif (i[:5] == 'ELSE ')or (i[:5] == 'ELSE') :
    indent -= 2
    i = ' '*indent + i
    indent += 2
    elif (i[:7] =='END_IF ') or (i[:7] =='END_IF'):
    indent -= 2
    i = ' '*indent + i
    else:
    i = ' '*indent + i
    print i



    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

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

    本版积分规则

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

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

    GMT+8, 2026-11-9 03:46 , Processed in 0.240708 second(s), 43 queries .

    酷德网

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

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