Vai a pag. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Esempio di programma di gestione di un File SEQUENTIAL

    *     Ricerca delle polizze in scadenza ad una determinata data
...
INPUT-OUTPUT SECTION.
FILE-CONTROL.
     SELECT ASSICURATI ASSIGN TO DISK "ASSICURA.DAT".

DATA DIVISION.
FILE SECTION.
FD  ASSICURATI LABEL RECORD STANDARD.
01  R-ASSICURATI.
     02 POLIZZA   PIC X(10).
     02 NOME      PIC X(40).
     02 ETA       PIC 999.
     02 SESSO     PIC X.
     02 RESIDENZA PIC X(15).
     02 SCADENZA  PIC X(6).

WORKING-STORAGE SECTION.
01  DATA-SCADUTE PIC X(6).

    *    Controllo se ci sono ancora record da elaborare

01  CONTR-FILE     PIC 9.
     88 FINE-FILE   VALUE 1.
     88 NOFINE-FILE VALUE 0.

PROCEDURE DIVISION.
MAIN SECTION.
IN-MAIN.
     PERFORM INIZIO.
     PERFORM ELABORA UNTIL FINE-FILE.
     PERFORM FINE.
FI-MAIN.  STOP RUN.

INIZIO SECTION.
IN-INIZIO.
     OPEN INPUT ASSICURATI.

     ACCEPT DATA-SCADUTE.
     SET NOFINE-FILE TO TRUE.
     PERFORM LEGGI-POLIZZA.
FI-INIZIO.  EXIT.

ELABORA SECTION.
IN-ELABORA.
     IF SCADENZA = DATA-SCADUTE
       DISPLAY R-ASSICURATI
     END-IF.

     PERFORM LEGGI-POLIZZA.
FI-ELABORA.  EXIT.

FINE SECTION.
IN-FINE.
     CLOSE ASSICURATI.
FI-FINE.  EXIT.

LEGGI-POLIZZA.
IN-LEGGI.
     READ ASSICURATI NEXT RECORD
       AT END
         SET FINE-FILE TO TRUE
     END-READ.
FI-LEGGI.  EXIT.

N.Brugaletta

COBOL 27