000100 ID DIVISION. 000200 PROGRAM-ID. cidxfile. 000300 AUTHOR. ChanJin Chung. 000400*PROGRAM TO Create AN INDEXED FILE 000500 ENVIRONMENT DIVISION. 000600 INPUT-OUTPUT SECTION. 000700 FILE-CONTROL. 000800*-------------------------------------------------------------- 000900 SELECT SEQ-FILE ASSIGN TO DISK 'PART.DAT' 001000 ORGANIZATION IS LINE SEQUENTIAL. 001100* !!!!!!!!PART.DAT MUST BE SORTED!!!!!!!!! 001200 SELECT IDX-FILE ASSIGN TO DISK 'PART.IXF' 001300 ORGANIZATION IS INDEXED 001400 ACCESS MODE IS SEQUENTIAL 001500 RECORD KEY IS IDX-KEY. 001600*-------------------------------------------------------------- 001700 DATA DIVISION. 001800 FILE SECTION. 001900 FD SEQ-FILE RECORD CONTAINS 30 CHARACTERS. 002000 01 SEQ-RECORD PIC X(30). 002100 FD IDX-FILE RECORD CONTAINS 30 CHARACTERS. 002200 01 IDX-RECORD. 002300 05 IDX-KEY PIC X(4). 002400 05 FILLER PIC X(26). 002500*-------------------------------------------------------------- 002600 WORKING-STORAGE SECTION. 002700 01 WS-INPUT-COUNT PIC 9(5) VALUE 0. 002800 01 WS-REC-LOADED PIC 9(5) VALUE 0. 002900 01 F1-EOF-FLAG PIC X(1) VALUE 'M'. 003000 003100 PROCEDURE DIVISION. 003200 main-rtn. 003300 OPEN INPUT SEQ-FILE OUTPUT IDX-FILE 003400 PERFORM UNTIL F1-EOF-FLAG = 'E' 003500 MOVE SPACES TO SEQ-RECORD 003600 READ SEQ-FILE 003700 AT END 003800 MOVE 'E' TO F1-EOF-FLAG 003900 NOT AT END 004000 ADD 1 TO WS-INPUT-COUNT 004100 DISPLAY SEQ-RECORD 004200 ????? IDX-RECORD FROM SEQ-RECORD 004300 END-READ 004400 END-PERFORM 004500 CLOSE SEQ-FILE IDX-FILE. 004600 STOP RUN.