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