COBOLサンプルソース集)マッチング

【MATDV2】2本のファイルのマッチング

ファイルが2本の場合比較するキーの値は (A < B) (A = B) (A > B) の3通りです。 どちらかが先にFILE-ENDになったら、キーの大小関係を保証するために High-Value を入れて制御します。 実は『併合処理』の場合もこのドライバの部分は共通で、機能の内容が変わるだけです。

      *****  2本matching 突合処理のドライバ  *****  [MATDV2]   (20 F10)

      * [ データの社員cdに 重複・err がある場合も含む ] *
      * [ 制御を総てキー値 (high-value利用)で行う場合 ] *
      *  (  ) 内に命令等を記述する

       procedure            division.
      **********  [ 制御 - module ]  **********
           open input (f1) (f2)  output (f3)
           perform f1-rtn thru f1-ex
           perform f2-rtn thru f2-ex
      *    ***** [両方のデータが無くなるまで] *****
           perform until (f1キー) = high-value and (f2キー) = high-value
               evaluate true
                   when (f1キー < f2キー) perform s1-rtn thru s1-ex
                                      perform f1-rtn thru f1-ex
                   when (f1キー = f2キー) perform s2-rtn thru s2-ex
                                      perform f2-rtn thru f2-ex
                   when (f1キー > f2キー) perform s2-rtn thru s2-ex
                                      perform f2-rtn thru f2-ex
               end-evaluate
           end-perform
           close (f1) (f2) (f3)  stop run.

      **********  [ 機能 - module ]  **********
       s1-rtn. (f1を書き出す).
       s1-ex.  exit.

       s2-rtn. (f1キー = f2キー の時の処理).
       s2-ex.  exit.

       s2-rtn. (f2 error の処理).
       s2-ex.  exit.

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

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

<< Back   Index   Next >>    < Top >