zoukankan      html  css  js  c++  java
  • Python编程实现对CodeSys中ST代码的自动排版(一)

    经常使用CodeSys编程,不免要去看别人的代码。

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

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

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

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

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

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

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

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

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

    1 #coding:gb2312
    2  import string
    3 text = open("test1.txt",'r')
    4 text1 = text.readline()
    5 lst1 = []
    6  #---------------------------------
    7 #删除行首和行末的空格
    8  while (text1 != ''):
    9 #print text1
    10   lst1.append(string.strip(text1))
    11 text1 = text.readline()
    12
    13 indent = 0
    14  for i in lst1:
    15 if i[:3] == 'IF ':
    16 i = ' '*indent + i
    17 indent += 2
    18 elif (i[:5] == 'ELSE ')or (i[:5] == 'ELSE') :
    19 indent -= 2
    20 i = ' '*indent + i
    21 indent += 2
    22 elif (i[:7] =='END_IF ') or (i[:7] =='END_IF'):
    23 indent -= 2
    24 i = ' '*indent + i
    25 else:
    26 i = ' '*indent + i
    27 print i
  • 相关阅读:
    python中字典排序,列表中的字典排序
    Python模块:operator简单介绍
    java 物理资源回收 finally与try
    Eclipse相对路径
    java Lambda
    java 匿名内部类
    java File类
    java单例类
    java 创建子类
    jvm运行时数据区域
  • 原文地址:https://www.cnblogs.com/dabiao/p/1693682.html
Copyright © 2011-2022 走看看