COBOLサンプルソース集) 順編成のファイル更新

【UPDDV1】データのキーが昇順でかつ重複がある場合

マスタのキーが小さくなるまで出力しないように変更するとこうなります。

      *****  順編成ファイル更新 ドライバパターン - 1  *****  [UPDDV1]  (20 F10)
      *         [キーの大小関係優先判定]         *
      *   [ データ のキーが昇順で かつ 重複 がある場合 ] 
      *  (  ) 内に命令等を記述する

       procedure    division.
      **********  [ 制御-MODULE ]  **********
           open input (f1) (f2) output (f3)
           perform f1-rtn thru f1-ext
           perform f2-rtn thru f2-ext
           perform until (f1キー = high-value) and (f2キー = high-value)
               evaluate true
                   when (f1キー < f2キー)    perform 複写処理 thru 複写出口
                                         perform f1-rtn   thru f1-ext
                   when (f1キー = f2キー) 
                        evaluate (訂正種別)
                            when  "M"    perform 修正処理 thru 修正出口
                                         perform f2-rtn   thru f2-ext
                            when  "D"    perform 削除処理 thru 削除出口
                                         perform f1-rtn   thru f1-ext
                                         perform f2-rtn   thru f2-ext
                            when other   perform err-処理 thru err-出口
                                         perform f2-rtn   thru f2-ext
                        end-evaluate
                   when (f1キー > f2キー) 
                        evaluate (訂正種別)
                            when  "A"    perform 追加処理 thru 追加出口
                                         perform f2-rtn   thru f2-ext
                            when other   perform err-処理 thru err-出口
                                         perform f2-rtn   thru f2-ext
                        end-evaluate
               end-evaluate
           end-perform
           close (f1) (f2) (f3)  stop run.

      **********  [ 機能-MODULE ]  **********
       複写処理. (f1 を f3 に 書き出す).
       複写出口. exit.

       修正処理. (修正処理だけを行う 出力はしなくても良い).
       修正出口. exit.

       削除処理. (何もしない).
       削除出口. exit.

       追加処理. (f2 を f3 に書き出す).
       追加出口. exit.

       err-処理. (error の処理を行う).
       err-出口. exit.

      **********  [ 読込-MODULE ]  **********
       f1-rtn.   read (f1) end move high-value to (f1キー)
                       not end continue
                 end-read.
       f1-ext.   exit.

       f2-rtn.   read (f2) end move high-value to (f2キー)
                       not end continue
                 end-read.
       f2-ext.   exit.

<< Back   Index   Next >>    < Top >