000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. AGO-83-10. 000300 AUTHOR. DANIELE GIACOMINI. 000400 DATE-WRITTEN. 1983-08. 000500* 000600 ENVIRONMENT DIVISION. 000700* 000800 INPUT-OUTPUT SECTION. 000900* 001000 FILE-CONTROL. 001100* 001200 SELECT FILE-DA-LEGGERE ASSIGN TO "file.ind" 001300 ORGANIZATION IS INDEXED 001400 ACCESS MODE IS DYNAMIC 001500 RECORD KEY IS CHIAVE. 001600* 001700 DATA DIVISION. 001800* 001900 FILE SECTION. 002000* 002100 FD FILE-DA-LEGGERE 002200 LABEL RECORD IS STANDARD. 002300* 002400 01 RECORD-DA-LEGGERE. 002500 02 CHIAVE PIC X(5). 002600 02 CHIAVE2 PIC X(5). 002700 02 TESTO PIC X(70). 002800* 002900 WORKING-STORAGE SECTION. 003000* 003100 01 CAMPI-SCALARI. 003200 02 EOJ PIC 9 COMP VALUE IS 0. 003300 02 EOF PIC 9 COMP VALUE IS 0. 003400 02 INV-KEY PIC 9 COMP VALUE IS 0. 003500 02 END-KEY PIC 9 COMP VALUE IS 0. 003600 02 CHIAVE-INIZIALE PIC X(5). 003700 02 CHIAVE-FINALE PIC X(5). 003800 02 CHIAVE-SCAMBIO PIC X(5). 003900* 004000 PROCEDURE DIVISION. 004100*------------------------- LIVELLO 0 ----------------- 004200 MAIN. 004300 OPEN INPUT FILE-DA-LEGGERE. 004400 PERFORM ELABORAZIONE UNTIL EOJ = 1. 004500 CLOSE FILE-DA-LEGGERE. 004600 STOP RUN. 004700*------------------------- LIVELLO 1 ----------------- 004800 ELABORAZIONE. 004900 DISPLAY "INSERISCI LA CHIAVE PRIMARIA ", 005000 "INIZIALE, POI QUELLA FINALE". 005100 ACCEPT CHIAVE-INIZIALE. 005200 ACCEPT CHIAVE-FINALE. 005300 IF CHIAVE-INIZIALE > CHIAVE-FINALE 005400 THEN 005500 MOVE CHIAVE-INIZIALE TO CHIAVE-SCAMBIO, 005600 MOVE CHIAVE-FINALE TO CHIAVE-INIZIALE, 005700 MOVE CHIAVE-SCAMBIO TO CHIAVE-FINALE. 005800 IF CHIAVE-INIZIALE = SPACES 005900 THEN 006000 MOVE 1 TO EOJ, 006100 ELSE 006200 MOVE CHIAVE-INIZIALE TO CHIAVE, 006300 PERFORM LEGGI, 006400 IF INV-KEY = 1 006500 THEN 006600 DISPLAY "INVALID KEY: ", CHIAVE, 006700 ELSE 006800 PERFORM MOSTRA-LEGGI-NEXT 006900 UNTIL END-KEY = 1 007000 OR EOF = 1. 007100*------------------------- LIVELLO 2 ----------------- 007200 LEGGI. 007300 MOVE ZERO TO END-KEY. 007400 MOVE ZERO TO EOF. 007500 MOVE ZERO TO INV-KEY. 007600 READ FILE-DA-LEGGERE 007700 INVALID KEY MOVE 1 TO INV-KEY. 007800*----------------------------------------------------- 007900 MOSTRA-LEGGI-NEXT. 008000 DISPLAY CHIAVE, " ", CHIAVE2, " ", TESTO. 008100 READ FILE-DA-LEGGERE NEXT RECORD 008200 AT END MOVE 1 TO EOF. 008300 IF CHIAVE > CHIAVE-FINALE 008400 THEN 008500 MOVE 1 TO END-KEY. 008600*