順次ファイルの作成

このプログラムでは、従業員給与レコードからなる順次ファイルを作成します。 入力レコードは、従業員番号の昇順に並べます。 出力ファイルも同じ順序です。

図 122. 従業員給与レコードの順次ファイルの例
 5722WDS V5R4M0  060210 LN  IBM ILE COBOL                 CBLGUIDE/CRTSEQ          ISERIES1   06/02/15 14:46:40        ページ    2
                                     ソ ー ス
  STMT PL SEQNO  -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S コピー名   変更日付
     1     000100 IDENTIFICATION DIVISION.
     2     000200 PROGRAM-ID.  CRTSEQ.
           000300
     3     000400 ENVIRONMENT DIVISION.
     4     000500 CONFIGURATION SECTION.
     5     000600   SOURCE-COMPUTER. IBM-ISERIES
     6     000700   OBJECT-COMPUTER. IBM-ISERIES.
     7     000800 INPUT-OUTPUT SECTION.
     8     000900 FILE-CONTROL.
     9     001000     SELECT INPUT-FILE ASSIGN TO DISK-FILEA
    11     001100         FILE STATUS IS INPUT-FILE-STATUS.
    12     001200     SELECT OUTPUT-FILE ASSIGN TO DISK-FILEB
    14     001300         FILE STATUS IS OUTPUT-FILE-STATUS.
    15     001400 DATA DIVISION.
    16     001500 FILE SECTION.
    17     001600 FD  INPUT-FILE.
    18     001700 01  INPUT-RECORD.
    19     001800     05  INPUT-EMPLOYEE-NUMBER      PICTURE 9(6).
    20     001900     05  INPUT-EMPLOYEE-NAME        PICTURE X(28).
    21     002000     05  INPUT-EMPLOYEE-CODE        PICTURE 9.
    22     002100     05  INPUT-EMPLOYEE-SALARY      PICTURE 9(6)V99.
    23     002200 FD  OUTPUT-FILE.
    24     002300 01  OUTPUT-RECORD.
    25     002400     05  OUTPUT-EMPLOYEE-NUMBER     PICTURE 9(6).
    26     002500     05  OUTPUT-EMPLOYEE-NAME       PICTURE X(28).
    27     002600     05  OUTPUT-EMPLOYEE-CODE       PICTURE 9.
    28     002700     05  OUTPUT-EMPLOYEE-SALARY     PICTURE 9(6)V99.
           002800
    29     002900 WORKING-STORAGE SECTION.
    30     003000 77  INPUT-FILE-STATUS              PICTURE XX.
    31     003100 77  OUTPUT-FILE-STATUS             PICTURE XX.
    32     003200 77  OP-NAME                        PICTURE X(7).
    33     003300 01  INPUT-END                      PICTURE X VALUE SPACE.
    34     003400     88 THE-END-OF-INPUT            VALUE "E".
           003500
    35     003600 PROCEDURE DIVISION.
    36     003700 DECLARATIVES.
           003800 INPUT-ERROR SECTION.
           003900      USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE.
           004000 INPUT-ERROR-PARA.
    37     004100      DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, "FOR INPUT-FILE".
    38     004200      DISPLAY "FILE STATUS IS ", INPUT-FILE-STATUS.
    39     004300      DISPLAY "PROCESSING ENDED".
    40     004400      STOP RUN.
           004500
           004600 OUTPUT-ERROR SECTION.
           004700      USE AFTER STANDARD ERROR PROCEDURE ON OUTPUT-FILE.
           004800 OUTPUT-ERROR-PARA.
    41     004900      DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, "FOR OUTPUT-FILE".
    42     005000      DISPLAY "FILE STATUS IS ", OUTPUT-FILE-STATUS.
    43     005100      DISPLAY "PROCESSING ENDED".
    44     005200      STOP RUN.
           005300 END DECLARATIVES.
 5722WDS V5R4M0  060210 LN  IBM ILE COBOL                 CBLGUIDE/CRTSEQ          ISERIES1  06/02/15 14:46:40        ページ    3
  STMT PL SEQNO  -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S コピー名   変更日付
           005400
           005500 MAIN-PROGRAM SECTION.
           005600 MAINLINE.
    45     005700     MOVE "OPEN" TO OP-NAME.
    46     005800     OPEN INPUT INPUT-FILE
           005900          OUTPUT OUTPUT-FILE.
           006000
    47     006100     MOVE "READ" TO OP-NAME.
    48     006200     READ INPUT-FILE INTO OUTPUT-RECORD
    49     006300         AT END SET THE-END-OF-INPUT TO TRUE
           006400     END-READ.
           006500
    50     006600     PERFORM UNTIL THE-END-OF-INPUT
    51     006700         MOVE "WRITE" TO OP-NAME
    52     006800         WRITE OUTPUT-RECORD
    53     006900         MOVE "READ" TO OP-NAME
    54     007000         READ INPUT-FILE INTO OUTPUT-RECORD
    55     007100             AT END SET THE-END-OF-INPUT TO TRUE
           007200                 END-READ
           007300     END-PERFORM.
           007400
    56     007500     MOVE "CLOSE" TO OP-NAME.
    57     007600     CLOSE INPUT-FILE
           007700           OUTPUT-FILE.
    58     007800     STOP RUN.
                           * * * * *   ソ ー ス 仕 様 の 終 わ り   * * * * *