25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

410 Operazioni di I/O su file<br />

Un record formattato è costituito da una sequenza di caratteri ASCII, terminata o meno con<br />

un carriage return, un avanzamento di linea o entrambi. La lunghezza di un record formattato,<br />

espressa in numero di caratteri, è variabile entro un limite predefinito dipendente dall’unità di<br />

ingresso-uscita.<br />

Un record non formattato è una sequenza di valori e la sua interpretazione dipende dal tipo<br />

di dati ed avviene secondo modalità dipendenti dal sistema. In altri termini, tali valori vengono<br />

rappresentati nel record esterno sottoforma di ”copia” delle ”unità di memorizzazione” utilizzate<br />

dallo specifico elaboratore. Anche per un record non formattato la lunghezza (misurata in<br />

unità dipendenti dal sistema) può variare entro un limite predefinito, eccetto che per i record<br />

ad accesso sequenziale (v. oltre) non contenenti informazioni sulla lunghezza del record, per i<br />

quali la lunghezza può quindi essere illimitata.<br />

<strong>Il</strong> record di endfile è l’ultimo record di un file e non ha lunghezza. Esso è prodotto dall’esecuzione<br />

di una speciale istruzione (ENDFILE). L’apposizione di un record endfile su un file<br />

rende impossibile ogni tentativo di leggere da (o scrivere su) quel file senza aver prima scorso<br />

all’indietro il file.<br />

8.1.2 File<br />

Un file è una sequenza di record tutti dello stesso tipo, esso può essere creato e reso accessibile<br />

anche con mezzi diversi dai programmi in linguaggio <strong>Fortran</strong>, ad esempio si può creare e modificare<br />

un file di testo con un normale text editor per poi leggerne e manipolarne le informazioni<br />

con un programma <strong>Fortran</strong>. I file contenuti in nastri e dischi magnetici sono generalmente detti<br />

esterni; i file ospitati, invece, nella memoria principale sono chiamati file interni. La posizione<br />

all’interno di un file si riferisce al prossimo record che sarà letto o scritto. Quando si accede ad<br />

un file (ossia quando lo si ”apre”) si è posizionati prima del primo record mentre la fine del file<br />

è subito dopo il record di endfile. Alcune istruzioni di I/O permettono di cambiare la posizione<br />

corrente in un file.<br />

<strong>Il</strong> metodo utilizzato per trasferire record da (o verso) un file è detto modalità di accesso.<br />

L’accesso ai file avviene attraverso il loro nome. In generale, un file esterno può contenere sia<br />

record formattati che non formattati. In funzione, pertanto, del tipo di record che li costituiscono,<br />

i file esterni possono essere classificati come file di testo o come file non di testo. In<br />

generale, i file di tipo testo vengono utilizzati per il collegamento con l’ambiente esterno ed i<br />

supporti di I/O (tipicamente, nelle operazioni di ingresso, per la lettura di dati da tastiera o<br />

da supporto magnetico; nelle operazioni di uscita, per l’output su video, stampanti a linea o su<br />

supporti magnetici).<br />

In funzione del metodo adoperato per accedere ai suoi record, un file può essere classificato<br />

come ad accesso sequenziale o ad accesso diretto. Più precisamente, quando un record in<br />

un file può essere letto o scritto in modo arbitrario (casuale), la modalità di accesso è detta<br />

diretta. Si accede ai singoli record attraverso un numero di record, che è sempre un intero<br />

positivo. Tutti i record in un file ad accesso diretto hanno la stessa lunghezza e contengono<br />

solo i dati attualmente scritti su di essi; in questo caso, pertanto, non esistono caratteri di<br />

fine record. Si noti che in un file ad accesso diretto i record possono essere riscritti ma non<br />

cancellati. Generalmente solo i file su disco possono usare la modalità di accesso diretto per

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

Saved successfully!

Ooh no, something went wrong!