- 论坛徽章:
- 0
|
程序功能:这次小项目的维护内容是需要检索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 |
|