マスタのキーが小さくなるまで出力しないように変更するとこうなります。
***** 順編成ファイル更新 ドライバパターン - 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.