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

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

トップ  >  #ABC

ファイル同士の照合(データの内容比較)

似たデータが入っているファイルが2つ有って、そのデータの差異の有無を比較したい時に使います。
同じデータのデータが入っていても、登録された順番が違ったり、途中で1行ずれていたりすると、その後のレコードが全部”差異有り”となるので注意。(一度実行してみるとどうなるかわかります。)


同じ種類のファイルでもできますが、それでは面白くないので、順編成ファイルと複数索引順編成ファイルのデータを比較してみます。

ファイル名ZAIKOMASTER
ファイル形式順編成
レコード長40バイト
ブロック化係数12レコード/ブロック
領域サイズ200セクタ

ファイル名ZAIKO
ファイル形式複数索引順編成
レコード長40バイト
ブロック化係数12レコード/ブロック
領域サイズ200セクタ
キーファイル名ZAIKOKEY1
キー先頭位置1バイト目
キー長6バイト
キー使用効率50%
キーファイルサイズ100


ファイル名も中に入っているデータも、たった今即興でそれっぽい感じで作った適当なものです。
下の説明をする為に、この2つのファイルのデータはほとんどデータが同じで、2レコード分だけ違っているように仕込んでいます。

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


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


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


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


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


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


マスタファイルには、比較する2つのファイルのうちのどちらかのファイル名を入力します。
「ZAIKOMASTER」と入力しました。


マスタ用オプションに何か入力したいならば「YES」、特に入力することが無いならば「NO」を選択します。 下の画面は「YES」にした場合です。マスタファイルに入力したファイルの詳細情報などを入力することになります。


トランザクションファイルには、もう一方のファイルの名前を入力します。
今回の例では「ZAIKO」と入力しました。


トランザクション用オプションは何も入力する必要が無ければ「NO」を選択します。
下の画面は「YES」にした場合です。


オプション機能は何も入力する必要が無ければ「NO」を選択します。
削除レコードも比較するかどうかや実行結果を印刷するプリンタを指定したい場合は「YES」にします。
「NO」にしたときは削除レコードは比較しない、実行結果はPRN999に印刷になります。
たくさん印刷されると困るので、印刷しないでスプールに落とした方がいいかもしれません。

ここまで入力するとファイルの照合(比較)が行われ、結果がガリガリと印刷されます。



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


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



それでは、結果を見てみましょう。 下が2つのファイルの比較結果を印刷したものです。


     RECORD-NO. ....-....1....-....2....-....3....-....4....-....5....-..

                                                                         
         000055 00005500000100                                           
MS              FFFFFFFFFFFFFF44444444444444444444444444                 
                0000550000010000000000000000000000000000                 
         000055 00005500000140                                           
TR              ************F***************************                 
                ************4***************************                 
                                                                         
         000075 00007500000100                                           
MS              FFFFFFFFFFFFFF44444444444444444444444444                 
                0000750000010000000000000000000000000000                 
         000075 00007500000030                                           
TR              ***********FF***************************                 
                ***********03***************************                 
                                                                         
                                                                         
HISTORY                                                                  
                                MASTER            TRANSACTION            
  DEVICE                      : MSD000            MSD000                 
  VOLUME NAME                 : AVX000            AVX000                 
  FILE NAME                   : ZAIKOMASTER       ZAIKO                  
  RECORD SIZE                 : 0040              0040                   
  NUMBER OF RECORDS           : 000201            000201                 
  NUMBER OF UNMATCHED RECORDS : ******            000002                 
                                                                         
END OF LISTING                                                           


55レコード目と75レコード目に差異があるという結果です。
55レコード目は、13桁目に差異があり、ZAIKOMASTERの方は「0」だが、ZAIKOの方は「4」になっています。 75レコード目は、12桁目と13桁目に差異があり、ZAIKOMASTERの方は「10」だが、ZAIKOの方は「03」になっていることが分かります。