ILE COBOL Programmer's Guide

Indexed File Creation

This program creates an indexed file of summary records for bank depositors. The key within each indexed file record is INDEX-KEY (the depositor's account number); the input records are ordered in ascending sequence upon this key. Records are read from the input file and transferred to the indexed file record area. The indexed file record is then written.

Figure 127. Example of an Indexed File Program


 5722WDS V5R3M0  030905 LN  IBM ILE COBOL                 CBLGUIDE/CRTIND          ISERIES1   03/09/15 14:52:38        Page      2
                                     S o u r c e
  STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S COPYNAME   CHG DATE
     1     000100 IDENTIFICATION DIVISION.
     2     000200 PROGRAM-ID.  CRTIND.
           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 INDEXED-FILE ASSIGN TO DISK-INDEXFILE
    11     001100         ORGANIZATION IS INDEXED
    12     001200         ACCESS IS SEQUENTIAL
    13     001300         RECORD KEY IS INDEX-KEY
    14     001400         FILE STATUS IS INDEXED-FILE-STATUS.
    15     001500     SELECT INPUT-FILE ASSIGN TO DISK-FILEG
    17     001600         FILE STATUS IS INPUT-FILE-STATUS.
           001700
    18     001800 DATA DIVISION.
    19     001900 FILE SECTION.
    20     002000 FD  INDEXED-FILE.
    21     002100 01  INDEX-RECORD.
    22     002200     05  INDEX-KEY                     PICTURE X(10).
    23     002300     05  INDEX-FLD1                    PICTURE X(10).
    24     002400     05  INDEX-NAME                    PICTURE X(20).
    25     002500     05  INDEX-BAL                     PICTURE S9(5)V99.
    26     002600 FD  INPUT-FILE.
    27     002700 01  INPUT-RECORD.
    28     002800     05  INPUT-KEY                     PICTURE X(10).
    29     002900     05  INPUT-NAME                    PICTURE X(20).
    30     003000     05  INPUT-BAL                     PICTURE S9(5)V99.
    31     003100 WORKING-STORAGE SECTION.
    32     003200 77  INDEXED-FILE-STATUS               PICTURE XX.
    33     003300 77  INPUT-FILE-STATUS                 PICTURE XX.
    34     003400 77  OP-NAME                           PICTURE X(7).
    35     003500 01  INPUT-END                         PICTURE X VALUE SPACES.
    36     003600     88  THE-END-OF-INPUT              VALUE "E".
           003700
    37     003800 PROCEDURE DIVISION.
    38     003900 DECLARATIVES.
           004000 INPUT-ERROR SECTION.
           004100       USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE.
           004200 INPUT-ERROR-PARA.
    39     004300     DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, " FOR INPUT-FILE ".
    40     004400     DISPLAY "FILE STATUS IS ", INPUT-FILE-STATUS.
    41     004500     DISPLAY "PROCESSING ENDED"
    42     004600     STOP RUN.
           004700
           004800 OUTPUT-ERROR SECTION.
           004900       USE AFTER STANDARD ERROR PROCEDURE ON INDEXED-FILE.
           005000 OUTPUT-ERROR-PARA.
    43     005100     DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, " FOR INDEXED-FILE ".
    44     005200     DISPLAY "FILE STATUS IS ", INDEXED-FILE-STATUS.
    45     005300     DISPLAY "PROCESSING ENDED"
 5722WDS V5R3M0  030905 LN  IBM ILE COBOL                 CBLGUIDE/CRTIND          ISERIES1   03/09/15 14:52:38        Page      3
  STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S COPYNAME   CHG DATE
    46     005400     STOP RUN.
           005500 END DECLARATIVES.
           005600
           005700 MAIN-PROGRAM SECTION.
           005800 MAINLINE.
    47     005900     MOVE "OPEN" TO OP-NAME.
    48     006000     OPEN INPUT INPUT-FILE
           006100         OUTPUT INDEXED-FILE.
           006200
    49     006300     MOVE "READ" TO OP-NAME.
    50     006400     READ INPUT-FILE
    51     006500          AT END SET THE-END-OF-INPUT TO TRUE
           006600     END-READ.
           006700
    52     006800     PERFORM UNTIL THE-END-OF-INPUT
    53     006900         MOVE INPUT-KEY TO INDEX-KEY
    54     007000         MOVE INPUT-NAME TO INDEX-NAME
    55     007100         MOVE INPUT-BAL TO INDEX-BAL
    56     007200         MOVE SPACES TO INDEX-FLD1
    57     007300         MOVE "WRITE" TO OP-NAME
    58     007400         WRITE INDEX-RECORD
           007500
    59     007600         MOVE "READ" TO OP-NAME
    60     007700         READ INPUT-FILE
    61     007800              AT END SET THE-END-OF-INPUT TO TRUE
           007900         END-READ
           008000     END-PERFORM.
           008100
    62     008200     MOVE "CLOSE" TO OP-NAME.
    63     008300     CLOSE INPUT-FILE
           008400           INDEXED-FILE.
    64     008500     STOP RUN.
           008600
                           * * * * *   E N D   O F   S O U R C E   * * * * *


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]