IDENTIFICATION DIVISION. PROGRAM-ID. QUERY-INDEX-FILE. AUTHOR. DEAN-BROCK. * ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. DEC-VAX. OBJECT-COMPUTER. DEC-VAX. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT BOOK-UPDATE-FILE ASSIGN TO 'UPDATE.TXT'. SELECT BOOK-INDEX-FILE ASSIGN TO 'BOOK.IND' ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS BXR-ISBN. SELECT REPORT-FILE ASSIGN TO 'BOOK.LPT'. * DATA DIVISION. * FILE SECTION. FD BOOK-UPDATE-FILE. 01 BOOK-UPDATE-RECORD. 05 BUR-ISBN PIC X(10). 05 BUR-TITLE PIC X(50). FD BOOK-INDEX-FILE. 01 BOOK-INDEX-RECORD. 05 BXR-ISBN PIC X(10). 05 BXR-TITLE PIC X(50). FD REPORT-FILE. 01 REPORT-RECORD. 05 FILLER PIC X(2) VALUE SPACES. 05 REP-MESSAGE PIC X(8). 05 FILLER PIC X(5) VALUE SPACES. 05 REP-ISBN PIC X(10). 05 FILLER PIC X(5) VALUE SPACES. 05 REP-TITLE PIC X(50). * WORKING-STORAGE SECTION. * 01 WS-EOF-FLAG PIC X. 01 WS-NEW-FLAG PIC X. * PROCEDURE DIVISION. * A000-MAIN. OPEN INPUT BOOK-UPDATE-FILE I-O BOOK-INDEX-FILE OUTPUT REPORT-FILE PERFORM B000-UPDATE-RECORDS CLOSE BOOK-UPDATE-FILE, BOOK-INDEX-FILE, REPORT-FILE STOP RUN. * B000-UPDATE-RECORDS. MOVE "N" TO WS-EOF-FLAG READ BOOK-UPDATE-FILE AT END MOVE "Y" TO WS-EOF-FLAG END-READ PERFORM UNTIL WS-EOF-FLAG IS EQUAL TO "Y" PERFORM B010-OUTPUT-REPORT READ BOOK-UPDATE-FILE AT END MOVE "Y" TO WS-EOF-FLAG END-READ END-PERFORM. * B010-OUTPUT-REPORT. MOVE BUR-ISBN TO BXR-ISBN MOVE "N" TO WS-NEW-FLAG READ BOOK-INDEX-FILE INVALID KEY MOVE "Y" TO WS-NEW-FLAG END-READ IF WS-NEW-FLAG IS EQUAL TO "N" THEN MOVE "PRESENT" TO REP-MESSAGE MOVE BXR-ISBN TO REP-ISBN MOVE BXR-TITLE TO REP-TITLE WRITE REPORT-RECORD * Now you need write out an updated record to the index file ELSE * Now you need write out a new record to the index file END-IF * And do any appropriate cleanup