24.01.2014 Views

Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

876 volume V Programmazione<br />

vuole lavorare con i file di testo, le righe di questi file sono suddivise in base alla presenza del<br />

codice di interruzione di riga (che può cambiare da un sistema operativo all’altro). Volendo<br />

considerare in COBOL le righe di un file di testo pari a dei record di dimensione variabile,<br />

occorre aggiungere l’opzione ‘LINE’, così da chiarire che si tratta sì di un’organizzazione<br />

sequenziale, ma di un file suddiviso in «righe».<br />

La dichiarazione ‘ACCESS MODE IS SEQUENTIAL’ è facoltativa, perché l’accesso a un file<br />

organizzato in modo sequenziale può essere solo sequenziale.<br />

La dichiarazione ‘FILE STATUS IS data-name’ consente di indicare una variabile (da specificare<br />

nella sezione ‘WORKING-STORAGE SECTION’ della divisione ‘DATA DIVISION’) da<br />

usare eventualmente per conoscere lo stato dell’ultima operazione svolta sul file. Questa variabile<br />

deve poter rappresentare un valore di due caratteri (il modello di definizione della variabile<br />

deve essere ‘XX’) e quando contiene il valore zero indica che l’ultima operazione è stata<br />

eseguita con successo (si vedano le tabelle 82.48 e 82.49, che appaiono alla fine del capitolo).<br />

Il punto fermo che conclude l’istruzione ‘SELECT’ appare una volta sola, alla fine; tutta<br />

l’istruzione deve risiedere nell’area B.<br />

Viene mostrato un esempio completo di un programma COBOL che legge un file sequenziale:<br />

|Listato 82.34. Programma elementare che legge un file sequenziale.<br />

|000100 IDENTIFICATION DIVISION.<br />

|000200 PROGRAM-ID. ESEMPIO-SEQUENZIALE.<br />

|000300 AUTHOR. DANIELE GIACOMINI.<br />

|000400 INSTALLATION. NANOLINUX IV,<br />

|000500 TINYCOBOL 0.61.<br />

|000600 DATE-WRITTEN. 2005-02-16.<br />

|000700 ENVIRONMENT DIVISION.<br />

|000800 INPUT-OUTPUT SECTION.<br />

|000900*<br />

|001000 FILE-CONTROL.<br />

|001100 SELECT FILE-NAME ASSIGN TO DISK<br />

|001200 ORGANIZATION IS SEQUENTIAL<br />

|001300 ACCESS MODE IS SEQUENTIAL<br />

|001400 FILE STATUS IS DATA-NAME.<br />

|001500*<br />

|001600 DATA DIVISION.<br />

|001700 FILE SECTION.<br />

|001800 FD FILE-NAME<br />

|001900 LABEL RECORD IS STANDARD<br />

|002000 VALUE OF FILE-ID IS "input.seq".<br />

|002100 01 RECORD-NAME PIC X(20).<br />

|002200 WORKING-STORAGE SECTION.<br />

|002300 01 DATA-NAME PIC XX.<br />

|002400 PROCEDURE DIVISION.<br />

|002500 MAIN.<br />

|002600 OPEN INPUT FILE-NAME.<br />

|002700 DISPLAY "FILE STATUS: ", DATA-NAME.<br />

|002800 PERFORM READ-FILE UNTIL DATA-NAME NOT = ZERO.<br />

|002900 CLOSE FILE-NAME.<br />

|003000 STOP RUN.<br />

|003100 READ-FILE.<br />

|003200 READ FILE-NAME.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!