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.

8.3 Gestione dei file ad accesso sequenziale 431<br />

INTEGER :: key ! valore della chiave<br />

CHARACTER(12) :: nome_input, nome_output ! nomi dei file<br />

INTEGER, PARAMETER :: lunghezza_linea = 240<br />

! massima lunghezza ammessa per un record<br />

CHARACTER(lunghezza_linea) :: linea<br />

! la linea letta di volta in volta<br />

INTEGER :: istatus ! stato I/O<br />

INTEGER :: i ! indice per ciclo interno<br />

! *** SEZIONE ESECUTIVA<br />

WRITE(*,*) ’Questo programma legge un file di testo, lo traduce secondo’<br />

WRITE(*,*) ’il metodo di Giulio Cesare, e lo stampa su un altro file’<br />

WRITE(*,100,ADVANCE=’NO’) ’Nome del file di input (da tradurre): ’<br />

READ (*,100) nome_input<br />

WRITE(*,100,ADVANCE=’NO’) ’Nome del file di output (tradotto): ’<br />

READ (*,100) nome_output<br />

WRITE(*,100,ADVANCE=’NO’) ’Chiave (intero positivo < 26): ’<br />

READ (*,100) key<br />

OPEN (UNIT=9,FILE=nome_input,STATUS=’OLD’,IOSTAT=istatus,ACTION=’READ’)<br />

! apertura del file sorgente in lettura<br />

IF (istatus==0) THEN<br />

OPEN (UNIT=10,FILE=nome_output,STATUS=’REPLACE’,IOSTAT=istatus &<br />

ACTION=’WRITE’)<br />

! apertura del file destinazione in scrittura<br />

lettura_riga: DO<br />

READ (9,100,IOSTAT=istatus) linea ! Lettura di una linea da file<br />

IF (istatus/=0) EXIT<br />

elaborazione_carattere: DO i=1,LEN_TRIM(linea)<br />

linea(i:i) = traduci(linea(i:i),key)<br />

END DO elaborazione_carattere<br />

WRITE(10,*) linea(1:LEN_TRIM(linea))<br />

END DO lettura_riga<br />

WRITE(*,*) ’Fine traduzione’<br />

CLOSE(9)<br />

CLOSE(10)<br />

ELSE<br />

WRITE(*,*) ’<strong>Il</strong> file ’, nome_input, ’non esiste’<br />

END IF<br />

STOP<br />

100 FORMAT(A)<br />

END PROGRAM cesare

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

Saved successfully!

Ooh no, something went wrong!