
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.