$ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. Seq2Direct. AUTHOR. MICHAEL COUGHLAN. *DP291-90-EXAM-SETUP. *Originally written for VAX COBOL 1991 *Converted to Microfocus NetExpress 2002 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT VIDEO-DETAILS-FILE ASSIGN TO "VDF.DAT" ORGANIZATION IS INDEXED FILE STATUS IS VDF-STATUS ACCESS MODE IS DYNAMIC RECORD KEY IS VDF-VIDEO-NUM ALTERNATE RECORD KEY IS VDF-VIDEO-CODE WITH DUPLICATES. SELECT VIDEO-FILE ASSIGN TO "VIDEO.DAT" ORGANIZATION IS INDEXED FILE STATUS IS VIDEO-STATUS ACCESS MODE IS DYNAMIC RECORD KEY IS VIDEO-CODE ALTERNATE RECORD KEY IS VIDEO-TITLE ALTERNATE RECORD KEY IS VIDEO-SUPPLIER-CODE WITH DUPLICATES. SELECT SUPPLIER-FILE ASSIGN TO "SUPPLIER.DAT" ORGANIZATION IS RELATIVE FILE STATUS IS SUPPLIER-STATUS ACCESS MODE IS RANDOM RELATIVE KEY IS SUPPLIER-KEY. SELECT INPUT-FILE ASSIGN TO "ALL-SEQ-IN.DAT" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD VIDEO-DETAILS-FILE. 01 VDF-RECORD. 02 VDF-VIDEO-NUM PIC X(5). 02 VDF-VIDEO-CODE PIC 9(5). 02 VDF-RENTAL-EARNINGS PIC 9(4)V99. 02 VDF-PURCHASE-PRICE PIC 999V99. FD VIDEO-FILE. 01 VIDEO-RECORD. 02 VIDEO-CODE PIC 9(5). 02 VIDEO-TITLE PIC X(30). 02 VIDEO-SUPPLIER-CODE PIC 99. FD SUPPLIER-FILE. 01 SUPPLIER-RECORD. 02 SUPPLIER-CODE PIC 99. 02 SUPPLIER-NAME PIC X(20). 02 SUPPLIER-ADDRESS PIC X(60). FD INPUT-FILE. 01 VDF-INSERT. 02 FILLER PIC 9. 88 INSERT-VDF-REC VALUE 1. 88 INSERT-VIDEO-REC VALUE 2. 88 INSERT-SUPP-REC VALUE 3. 02 VDF-REC PIC X(21). 01 VIDEO-INSERT. 02 FILLER PIC 9. 02 VIDEO-REC PIC X(37). 01 SUPPLIER-INSERT. 02 FILLER PIC 9. 02 SUPP-REC. 03 SUPPLIER-KEY PIC 99. 03 FILLER PIC X(80). WORKING-STORAGE SECTION. 01 FILE-STATUS-IDENTIFIERS. 02 VDF-STATUS PIC X(2). 02 VIDEO-STATUS PIC X(2). 02 SUPPLIER-STATUS PIC X(2). 01 END-OF-FILE-FLAGS. 02 FILLER PIC 9 VALUE 1. 88 VIDEO-FILE-END VALUE 0. 02 FILLER PIC 9 VALUE 1. 88 VDF-FILE-END VALUE 0. 88 NOT-VDF-END VALUE 1. 02 FILLER PIC 9 VALUE 1. 88 END-OF-INPUT VALUE 0. PROCEDURE DIVISION. BEGIN. OPEN OUTPUT VIDEO-DETAILS-FILE. OPEN OUTPUT VIDEO-FILE. OPEN OUTPUT SUPPLIER-FILE. OPEN INPUT INPUT-FILE. READ INPUT-FILE AT END SET END-OF-INPUT TO TRUE END-READ. PERFORM INSERT-RECORDS UNTIL END-OF-INPUT CLOSE VIDEO-DETAILS-FILE, VIDEO-FILE, SUPPLIER-FILE, INPUT-FILE. STOP RUN. INSERT-RECORDS. EVALUATE TRUE WHEN INSERT-VDF-REC WRITE VDF-RECORD FROM VDF-REC INVALID KEY DISPLAY "VDF ERROR " VDF-REC DISPLAY "VDF STATUS " VDF-STATUS END-WRITE WHEN INSERT-VIDEO-REC WRITE VIDEO-RECORD FROM VIDEO-REC INVALID KEY DISPLAY "VIDEO ERR " VIDEO-REC DISPLAY "STATUS =" VIDEO-STATUS END-WRITE WHEN INSERT-SUPP-REC WRITE SUPPLIER-RECORD FROM SUPP-REC INVALID KEY DISPLAY "SUPP ERR " SUPP-REC DISPLAY "STATUS =" SUPPLIER-STATUS END-WRITE WHEN OTHER DISPLAY "ERROR IN THE EVALUATE REC ="VDF-INSERT END-EVALUATE. READ INPUT-FILE AT END SET END-OF-INPUT TO TRUE END-READ.