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 * * * * * |
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.