Come leggere e scrivere un file di testo su Octave

In questa lezione ti spiego come scrivere e leggere un file di testo tramite Octave.

Come scrivere un nuovo file

Per scrivere un file di testo usa la funzione fopen() indicando il nome del file e la modalità di accesso in scrittura "w" (write)

>> MyFile=fopen("test2.txt", "w");

Poi scrivi due record nel file usando la funzione fprintf().

>> fprintf(MyFile, "1 record \n");
>> fprintf(MyFile, "2 record \n");

In alternativa puoi anche scrivere i record con la funzione fputs()

>> fputs(MyFile, "1 record \n");
>> fputs(MyFile, "2 record \n");

Il risultato è lo stesso.

Nota. Alla fine di ogni stringa aggiungi il simbolo di fine riga \n (newline) per andare accapo e iniziare un nuovo record. Se non lo aggiungi, la successiva istruzione printf() continua a scrivere in coda nello stesso record.

Quando hai finito di scrivere i record, chiudi il file con la funzione fclose()

>> fclose(MyFile);

Come leggere un file

Per leggere un file di testo usa la funzione fopen() indicando il nome del file e l'attributo "r" (read)

Assegna il file a una variabile di transito. Ad esempio MyFile.

>> MyFile=fopen("test2.txt", "r");

Per leggere un record del file usa l'istruzione fgetl()

>> fgetl(MyFile)

L'istruzione legge il contenuto del primo record

ans = 1 record

Per leggere il secondo record usa nuovamente l'istruzione fgetl()

>> fgetl(MyFile)

L'istruzione legge il contenuto del secondo record

ans = 2 record

Se digiti nuovamente il comando fgetl()

>> fgetl(MyFile)

il comando di lettura restituisce -1 perché il file è arrivato alla fine.

ans = -1

Come leggere il file tramite un ciclo

Puoi anche leggere il contenuto del file tramite una struttura ciclica, senza dover digitare ogni volta fgetl()

MyFile=fopen("test4.txt", "r");
eof=0;
while eof==0
rec =fgetl(MyFile)
if (rec==-1) eof=1; endif
end
fclose(MyFile)

Come aggiungere record a un file esistente

Per aggiungere altri record a un file esistente, apri il file in modalità di accesso 'a' (append) tramite la funzione fopen()

Ad esempio, apri il file "test2.txt" dove già sai che ci sono due record.

>> MyFile=fopen("test2.txt", "a");

Poi aggiungi un nuovo record con la funzione fprintf() o fputs()

>> fprintf(MyFile, "3 record \n");

Quando hai finito di aggiungere altri record, chiudi il file in scrittura con la funzione fclose()

>> fclose(MyFile);

Ora nel file ci sono tre record.

Le modalità di accesso ai file

Oltre alla modalità di accesso in lettura (r) e scrittura (w) ne esistono altre

'r' = apre il file in lettura
'w' = apre un nuovo file in scrittura
'a' = aggiunge record alla fine di un file esistente
'r+' = apre un file in lettura e scrittura
'w+' = apre un nuovo file in lettura e scrittura
'a+' = apre un file in lettura e scrittura alla fine del file

In questa lezione hai imparato a leggere e scrivere un file di testo tramite Octave.




Non hai risolto il tuo problema? Scrivi una domanda