Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica Parte ii - IIS Marconi Latina - Area didattica

iismarconi.net
from iismarconi.net More from this publisher
24.01.2014 Views

956 volume V Programmazione contiene il valore 500 (100×5). Si potrebbe scrivere la stessa cosa utilizzando l’istruzione ‘COMPUTE’: |000000 COMPUTE A = 100 * A. Lo schema sintattico successivo mostra l’utilizzo di ‘MULTIPLY’ in modo da non alterare i valori utilizzati come moltiplicatori: Nella forma appena mostrata, la moltiplicazione avviene immettendo il risultato dell’operazione nella variabile indicata dopo la parola ‘GIVING’. Valgono le stesse considerazioni già fatte a proposito delle opzioni ‘ROUNDED’ e ‘SIZE ERROR’. Si osservi l’esempio seguente che ripete sostanzialmente l’esempio già mostrato in precedenza: |000000 MULTIPLY 100 BY 5 GIVING A. « 82.12.14 Istruzione «OPEN» L’istruzione ‘OPEN’ serve ad aprire un file, o un gruppo di file, specificando la modalità di accesso. Quando l’accesso a un file richiede l’esecuzione di alcune procedure meccaniche preliminari, questa istruzione serve a eseguirle. L’istruzione ‘OPEN’ non riguarda i file dichiarati esplicitamente per il riordino e la fusione. Dopo la parola chiave ‘OPEN’ inizia l’elenco dei file che si vogliono aprire, cominciando con la parola chiave che definisce la modalità di accesso desiderata: ‘INPUT’ richiede un accesso in lettura; ‘OUTPUT’ un accesso in scrittura; ‘I-O’ un accesso in lettura e scrittura; ‘EXTEND’ un accesso in estensione (scrittura). Il tipo di accesso consentito dipende dall’organizzazione dei file o dalla modalità di accesso; nelle versioni più vecchie del linguaggio, l’apertura in estensione (‘EXTEND’) può essere usata soltanto per i file sequenziali; l’apertura in lettura e scrittura (‘I-O’) richiede che il file sia collocato in un’unità di memorizzazione ad accesso diretto, come nel caso dei dischi. L’opzione ‘NO REWIND’ si riferisce al riavvolgimento automatico del nastro, che riguarda, evidentemente, solo file sequenziali su unità ad accesso sequenziale, che possono richiedere

Manuale COBOL 957 un’operazione di riavvolgimento. Se si usa questa opzione, si intende evitare che il nastro venga riavvolto automaticamente alla chiusura del file stesso. Per i file su disco, o comunque su unità ad accesso diretto, anche se si tratta di file con organizzazione sequenziale, questa opzione non deve essere usata. Quando un file viene aperto (con questa istruzione) è possibile accedervi secondo la modalità prevista, con le istruzioni appropriate. L’apertura va eseguita una sola volta e la chiusura (con l’istruzione ‘CLOSE’) dichiara la conclusione delle operazioni con quel file. Se un file deve essere riaperto all’interno del programma, probabilmente perché vi si vuole accedere secondo una modalità differente, o per altri motivi, è necessario che alla chiusura non sia utilizzata l’opzione ‘lock’, che altrimenti impedirebbe di farlo. L’apertura in lettura che si ottiene con la parola chiave ‘READ’ serve ad accedere a un file esistente in modo da poter leggere il suo contenuto; l’apertura fa sì che la posizione relativa, iniziale, all’interno del file, corrisponda al primo record logico. Se il file non esiste, si presenta una condizione di errore. L’apertura in scrittura che si ottiene con la parola chiave ‘OUTPUT’ serve a creare un file, ma se il file esiste già, questo viene azzerato completamente. L’apertura in lettura e scrittura che si ottiene con la parola chiave ‘I-O’ serve a permettere l’accesso a un file esistente, sia per leggere i dati, sia per modificarli. La posizione relativa iniziale è quella del primo record logico. L’apertura in estensione che si ottiene con la parola chiave ‘EXTEND’, può essere utilizzata soltanto con file sequenziali e serve a consentire l’aggiunta di record a partire dalla fine del file iniziale. Pertanto, il puntatore relativo iniziale si trova dopo la fine dell’ultimo record logico e l’utilizzo di questo file avviene nello stesso modo di un’apertura in scrittura, con la differenza che il contenuto precedente non viene cancellato. Se il file che viene aperto è associato a una variabile indicata con l’opzione ‘FILE STATUS’ nell’istruzione ‘SELECT’ (nella sezione ‘FILE-CONTROL’ di ‘ENVIRONMENT DIVISION’), il valore di tale variabile viene aggiornato. |Tabella 82.199. File con organizzazione sequenziale (e accesso sequenziale). Istruzione Apertura in lettura (‘INPUT’) Apertura in scrittura (‘OUTPUT’) Apertura in lettura e scrittura (‘I-O’) Apertura estensione (‘EXTEND’) in | READ X X | WRITE X X | REWRITE X

Manuale COBOL 957<br />

un’operazione di riavvolgimento. Se si usa questa opzione, si intende evitare che il nastro<br />

venga riavvolto automaticamente alla chiusura del file stesso. Per i file su disco, o comunque<br />

su unità ad accesso diretto, anche se si tratta di file con organizzazione sequenziale, questa<br />

opzione non deve essere usata.<br />

Quando un file viene aperto (con questa istruzione) è possibile accedervi secondo la modalità<br />

prevista, con le istruzioni appropriate. L’apertura va eseguita una sola volta e la chiusura (con<br />

l’istruzione ‘CLOSE’) dichiara la conclusione delle operazioni con quel file. Se un file deve<br />

essere riaperto all’interno del programma, probabilmente perché vi si vuole accedere secondo<br />

una modalità differente, o per altri motivi, è necessario che alla chiusura non sia utilizzata<br />

l’opzione ‘lock’, che altrimenti impedirebbe di farlo.<br />

L’apertura in lettura che si ottiene con la parola chiave ‘READ’ serve ad accedere a un file<br />

esistente in modo da poter leggere il suo contenuto; l’apertura fa sì che la posizione relativa,<br />

iniziale, all’interno del file, corrisponda al primo record logico. Se il file non esiste, si presenta<br />

una condizione di errore.<br />

L’apertura in scrittura che si ottiene con la parola chiave ‘OUTPUT’ serve a creare un file, ma<br />

se il file esiste già, questo viene azzerato completamente.<br />

L’apertura in lettura e scrittura che si ottiene con la parola chiave ‘I-O’ serve a permettere<br />

l’accesso a un file esistente, sia per leggere i dati, sia per modificarli. La posizione relativa<br />

iniziale è quella del primo record logico.<br />

L’apertura in estensione che si ottiene con la parola chiave ‘EXTEND’, può essere utilizzata<br />

soltanto con file sequenziali e serve a consentire l’aggiunta di record a partire dalla fine del file<br />

iniziale. Pertanto, il puntatore relativo iniziale si trova dopo la fine dell’ultimo record logico e<br />

l’utilizzo di questo file avviene nello stesso modo di un’apertura in scrittura, con la differenza<br />

che il contenuto precedente non viene cancellato.<br />

Se il file che viene aperto è associato a una variabile indicata con l’opzione ‘FILE STATUS’<br />

nell’istruzione ‘SELECT’ (nella sezione ‘FILE-CONTROL’ di ‘ENVIRONMENT DIVISION’), il<br />

valore di tale variabile viene aggiornato.<br />

|Tabella 82.199. File con organizzazione sequenziale (e accesso sequenziale).<br />

Istruzione<br />

Apertura in lettura<br />

(‘INPUT’)<br />

Apertura in scrittura<br />

(‘OUTPUT’)<br />

Apertura in lettura<br />

e scrittura<br />

(‘I-O’)<br />

Apertura<br />

estensione<br />

(‘EXTEND’)<br />

in<br />

| READ X X<br />

| WRITE X X<br />

| REWRITE X

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

Saved successfully!

Ooh no, something went wrong!