Salvare in un file Vediamo come salvare dei dati su un archivio di testo.Si voglia salvare i risultati della funzione exp(x) entro l’intervallo(1; 2) con passo 0.1. Si costruisca dapprima il vettore seguente:
x = 1 : 0.1 : 2 ;
e quindi si valuta una matrice A nel modo seguente:
A = [ x ;exp(x) ];
Decidiamo che il nome esterno del file su cui si vuole salvare la matrice A sia file.txt ; esso dovra’ essere posto entro apici perche’ e’ una stringa. Apriamo il file in scrittura con ’wt’ assegnandogli il nome interno nomefile. L’istruzione e’ la seguente:
nomefile = fopen ( ’file.txt’ , ’wt’);
Si deposita nell’archivio nomefile la matrice A scrivendo le due colonne di numeri decimali:
la prima colonna con 6 cifre di cui 2 decimali la seconda colonna 8 cifre di cui 4 decimali.
Si osservi che fprintf e’ un acronimo di file print formatted.
fprintf ( nomefile , ’%6.2g %8.4g\n’ , A);
Si noti che per primo si mette il nome interno: nomefile per secondo si mette il formato per terzo si mette la matrice: A Quindi si chiude il file con il comando:
fclose (nomefile);
Se si vuole analizzare il file cosi’ creato lo si puo’ fare con un editor di testo qualsiasi.
Caricare un file Vediamo come leggere dati da un archivio di testo.Il nome esterno del file sia ”file.txt” che e’ generato con un programma esterno. Il nome deve essere posto entro apici perch`e `e una stringa. Per iniziare si apre il file assegnandogli un nome interno, ad esempio nomefile, in lettura ( ’r’ che sta per ”read” ).
nomefile = fopen ( ’file.txt’ , ’r’);
Si preleva dall’archivio nomefile la matrice A leggendo le due colonne di numeri in formato ”%g”.
A = fscanf ( nomefile , ’%g %g’ , [2 inf] );
A = A’;
Si noti che per primo si mette il nome interno: (nomefile) per secondo si mette il formato (’%g%g’) per terzo si mette il numero di elementi per riga(2) e, non sapendo quante righe sono, si mette inf il tutto entro parentesi quadre per indicare la matrice da prelevare. Per ultimo si chiude il file:
fclose (nomefile);
Ricapitoliamo i comandi utilizzati:
aprire =) fopen (...)
chiudere =) fclose (...)
scrivere =) fprintf (...)
leggere =) fscanf (...)
G. Ciaburro
Successivo: Grafici
Sommario: Index