Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

2つのソースの内容を照合・比較する

バージョン違いの良く似た2つのCOBOLのソースプログラムがあって、差分を調べたい時がよくあります。
照合を使うと2つのソースプログラムの差分を調べることができます。

SYS@SULの中にあるTEST01とTEST02という2つのプログラムを比較してみましょう。

TEST01

000010 IDENTIFICATION DIVISION.           
000020 PROGRAM-ID.  TEST01.               
000030*                                   
000040 ENVIRONMENT    DIVISION.           
000050 DATA           DIVISION.           
000060 WORKING-STORAGE SECTION.           
000070 01  I01    PIC X(01)   VALUE SPACE.
000080 01  O01    PIC 9(03)   VALUE ZERO. 
000090 PROCEDURE      DIVISION.           
000100 MPRG.                              
000110     DISPLAY "ABCD".                
000120     ACCEPT  I01.                   
000130     STOP RUN.                      

TEST02

000010 IDENTIFICATION DIVISION.           
000020 PROGRAM-ID.  TEST02.               
000030*                                   
000040 ENVIRONMENT    DIVISION.           
000050 DATA           DIVISION.           
000060 WORKING-STORAGE SECTION.           
000070 01  I01    PIC X(01)   VALUE SPACE.
000080*01  O01    PIC 9(03)   VALUE ZERO. 
000090 PROCEDURE      DIVISION.           
000100 MPRG.                              
000110     DISPLAY "ABCD".                
000120     ACCEPT  I01.                   
000130     DISPLAY I01.                   
000140     STOP RUN.                      


RUNコマンド入力行で、「#ABC;」と入力して「ENTERキー」を押します。


簡易操作ユーティリティ#ABCが起動されました。


実行したい機能を選びます。「1.ファイル情報の保守」を選択します。


次はこのような画面になります。


「6.照合」を選択します。


「1.ファイル」を選択します。


比較元のファイル(マスタファイル)+ソース名(プログラム名)を入力します。
今回は、マスタファイルに「SYS@SUL」、プログラム名に「TEST01」と入力します。


比較するファイル(トランザクションファイル)とソース名(プログラム名)を入力します。
今回は、トランザクションファイルに「SYS@SUL」、プログラム名に「TEST02」と入力しました。


実行結果(比較した結果の差分)をどこに出力するかを入力します。
今回は、プリンタにしゅつりょくすることとして「PRN999」としました。
なお、下の画面では04に「STN」が表示されていますが、画面に出力することはできないようです。



ここまで入力すると、照合作業が始まります。例のCOBOLソースプログラムは短いので、一瞬で比較照合は終了します。


照合作業が終了すると最初の画面に戻ります。


簡易操作ユーティリティを終了したいときは、「99」と入力して「ENTERキー」を押します。



印刷された照合結果(2つのソースプログラムの差分)を見てみましょう。
下のような結果が印刷されていました。
2行目、8行目、13行目、14行目に違いがあったようです。


     RECORD-NO. ....-....1....-....2....-....3....-....4....-....5....-....6....-....7....-....8....-....9....-....0    
                                                                                                                        
         000002 000020 PROGRAM-ID.  TEST01.                                                                             
MS              FFFFFF4DDDCDCD6CC444ECEEFF444444444444444444444444444444444444444444444444444444                        
                00002007967914094B00352301B00000000000000000000000000000000000000000000000000000                        
         000002 000020 PROGRAM-ID.  TEST02.                                                                             
TR              *************************F******************************************************                        
                *************************2******************************************************                        
                                                                                                                        
         000008 000080 01  O01    PIC 9(03)   VALUE ZERO.                                                               
MS              FFFFFF4FF44DFF4444DCC4F4FF5444ECDEC4ECDD4444444444444444444444444444444444444444                        
                00008000100601000079309D03D0005134509596B000000000000000000000000000000000000000                        
         000008 000080*01  O01    PIC 9(03)   VALUE ZERO.                                                               
TR              ******5*************************************************************************                        
                ******C*************************************************************************                        
                                                                                                                        
         000013 000130     STOP RUN.                                                                                    
MS              FFFFFF44444EEDD4DED4444444444444444444444444444444444444444444444444444444444444                        
                0001300000023670945B000000000000000000000000000000000000000000000000000000000000                        
         000013 000130     DISPLAY I01.                                                                                 
TR              ***********CCE*DCE4CFF4*********************************************************                        
                ***********492*3180901B*********************************************************                        
                                                                                                                        
         000014 000140     STOP RUN.                                                                                    
TR              FFFFFF44444EEDD4DED4444444444444444444444444444444444444444444444444444444444444                        
                0001400000023670945B000000000000000000000000000000000000000000000000000000000000