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

 

转载于:https://www.cnblogs.com/dabiao/archive/2010/03/24/1693682.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值