Vai al contenuto
eLearner.app
Modulo 5 · Lezione 1 di 29/10 nel corso~15 min
Lezioni del modulo (1/2)

Definizione File e File-Control

In COBOL, la gestione dei file esterni (come archivi di testo o record binari su disco) è una delle funzionalità più importanti per le applicazioni aziendali di tipo batch. Poiché COBOL è stato progettato molto prima dei database moderni, i file su disco fungono da storage primario.

Il collegamento tra i file fisici memorizzati sul sistema operativo e le variabili interne del programma avviene in due fasi:

  1. Associazione logico-fisica nell'ENVIRONMENT DIVISION.
  2. Definizione del record dei dati nella DATA DIVISION.

1. Associazione: FILE-CONTROL e SELECT ASSIGN

Nel capitolo dedicato alla struttura del programma abbiamo visto l'ENVIRONMENT DIVISION. Al suo interno si trova l'INPUT-OUTPUT SECTION, all'interno della quale la sezione FILE-CONTROL dichiara i file esterni usati dal programma.

Per associare un file logico del programma (es. SALES-FILE) a un file fisico reale sul disco (es. sales.dat), si usa l'istruzione SELECT ... ASSIGN TO ...:

Code
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SALES-FILE ASSIGN TO "sales.dat"
               ORGANIZATION IS LINE SEQUENTIAL.
  • SELECT SALES-FILE: Definisce il nome logico che il programma userà per riferirsi al file.
  • ASSIGN TO "sales.dat": Specifica il nome del file fisico (o il percorso) sul disco.
  • ORGANIZATION IS LINE SEQUENTIAL (opzionale): Indica che il file è un normale file di testo in cui ogni riga rappresenta un record (separato da un carattere di ritorno a capo).

2. Dichiarazione: FILE SECTION e FD

Dopo aver associato il file nell'ENVIRONMENT DIVISION, dobbiamo definirne la struttura dei record nella DATA DIVISION. Per farlo, utilizziamo una sezione dedicata chiamata FILE-SECTION (che precede la WORKING-STORAGE SECTION).

Ogni file selezionato deve avere una voce FD (File Description) che dichiara la struttura del record:

Code
       DATA DIVISION.
       FILE SECTION.
       FD SALES-FILE.
       01 SALES-RECORD.
           05 EMP-ID       PIC 9(5).
           05 EMP-NAME     PIC X(20).
           05 EMP-SALARY   PIC 9(6)V99.
  • FD SALES-FILE.: Identifica la descrizione del file per il nome logico SALES-FILE. Nota che termina con un punto.
  • 01 SALES-RECORD.: Specifica la struttura di gruppo (record) associata al file. Ogni operazione di lettura/scrittura scambierà i dati usando questa struttura in memoria.

Prova tu

Esercizio#cobol.m5.l1.e1
Tentativi: 0Caricamento…

Completa l'ENVIRONMENT DIVISION per dichiarare l'INPUT-OUTPUT SECTION e il paragrafo FILE-CONTROL, associando il file logico SALES-FILE al file fisico 'sales.dat' tramite l'istruzione SELECT ASSIGN.

Caricamento editor…
Mostra suggerimento

Scrivi ENVIRONMENT DIVISION. e INPUT-OUTPUT SECTION. a colonna 8 (7 spazi), poi FILE-CONTROL. a colonna 8 e infine SELECT SALES-FILE ASSIGN TO 'sales.dat'. a colonna 12 (11 spazi).

Soluzione disponibile dopo 3 tentativi

Esercizio#cobol.m5.l1.e2
Tentativi: 0Caricamento…

Dichiara la DATA DIVISION e la FILE SECTION per il programma. Definisci il File Descriptor (FD) per il file SALES-FILE associandovi un record di livello 01 chiamato SALES-RECORD contenente due campi subordinati: SALES-ID (numerico di 4 cifre) e SALES-AMOUNT (numerico di 5 cifre con 2 decimali impliciti).

Caricamento editor…
Mostra suggerimento

Usa DATA DIVISION. e FILE SECTION. a colonna 8, FD SALES-FILE. a colonna 8, seguito a capo da 01 SALES-RECORD. a colonna 8 e dai campi 05 SALES-ID PIC 9(4). e 05 SALES-AMOUNT PIC 9(5)V99. a colonna 12.

Soluzione disponibile dopo 3 tentativi