免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2414 | 回复: 2
打印 上一主题 下一主题

旧代码整理用的小程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-05 12:06 |只看该作者 |倒序浏览
程序功能:这次小项目的维护内容是需要检索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

论坛徽章:
0
2 [报告]
发表于 2010-01-05 14:11 |只看该作者
都应该可以程序实现吧

论坛徽章:
0
3 [报告]
发表于 2010-01-05 19:07 |只看该作者
辛苦。有用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP