旧代码整理用的小程序
程序功能:这次小项目的维护内容是需要检索5年前的源代码,去掉1-5列的项目编号。删除5年前的注释掉的代码需要。
前者是程序完成的,后者是手动完成的。
操作步骤:1。命令行call change(要检索的mbr名)
2。用strseu打开mbr
3。搜索935A,人工判定需要删除的代码,执行删除。
4。SEU命令行敲入C 935A '' A将所有的935A替换成空。退出保存即可。
如果担心MBR中有935A这个字符串。可以修改mysql.rpgle,换成不易混淆的编号。
说明:hex(substr(srcdta,5,1))= '22' 是代码行中的颜色标记,16进制,占位但seu目视看不到。感谢isee帮忙确认使用这个方法进行判定。
很好玩地。 大家一起研究。
change.clp
*****************************************************
PGM PARM(&MBR)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
OVRDBF FILE(QrpgleSRC) TOFILE(mylib/QrpgleSRC) +
MBR(&MBR)
CALL PGM(mylib/MYSQL)
DLTOVR FILE(*ALL)
ENDPGM
mysql.sqlrpgle
*****************************************************
c/exec sql
+ update mylib/qrpglesrc set
+ SRCDTA='935A '||SUBSTR(SRCDTA,6,95)
+ where (int(SRCDAT/10000) <=4 or
+ srcdat= 0 OR
+ int(srcdat/10000)>10)
+ AND SUBSTR(SRCDTA,7,1) = '*'
+ AND hex(substr(srcdta,5,1))<>'22'
+ AND SUBSTR(SRCDTA,1,5) NOT LIKE '%Rev#%'
+ AND SUBSTR(SRCDTA,1,5) NOT LIKE '%====%'
c/end-exec
c/exec sql
+ update mylib/qrpglesrc set
+ SRCDTA='935A'||SUBSTR(SRCDTA,5,96)
+ where (int(SRCDAT/10000) <=4 or
+ srcdat= 0 OR
+ int(srcdat/10000)>10)
+ AND SUBSTR(SRCDTA,7,1) = '*'
+ AND hex(substr(srcdta,5,1))= '22'
+ AND SUBSTR(SRCDTA,1,5) NOT LIKE '%Rev#%'
+ AND SUBSTR(SRCDTA,1,5) NOT LIKE '%====%'
c/end-exec
c/exec sql
+ update mylib/qrpglesrc set
+ SRCDTA=' '||SUBSTR(SRCDTA,6,95)
+ where (int(SRCDAT/10000) <=4 or
+ srcdat= 0 OR
+ int(srcdat/10000)>10)
+ AND SUBSTR(SRCDTA,1,4) <>' '
+ AND SUBSTR(SRCDTA,7,1) <>'*'
+ AND SUBSTR(SRCDTA,1,5) NOT LIKE '%Rev#%'
+ AND SUBSTR(SRCDTA,1,5) NOT LIKE '%====%'
c/end-exec
C/EXEC SQL COMMIT
C/END-EXEC
C SETON LR
C RETURN
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
辛苦。有用。
都应该可以程序实现吧