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
没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃