Ben ritrovati iTechnoFans, oggi tratteremo un argomento che incrementerà notevolmente la nostra capacità di programmare.
Introduciamo i FILE, ossia quelle strutture di dati che risiedono nell’Hard Disk in modo permanente.
Vedremo come dichiarare questa nuova struttura, e come aprire il canale che ci consente di trasferire i file da memoria centrale a memoria di massa.

punto interrogativo

La dichiarazione di una struttura FILE è molto semplice:

FILE *nome;

  • FILE indica il tipo della struttura, in questo caso “FILE”.
  • L’asterisco indica il puntatore, argomento che tratteremo in un secondo momento.
  • Nome rappresenta il nome logico del nostro file (il nome utilizzato dal compilatore e dal programmatore per far riferimento al file).

Per poter cominciare a lavorare all’interno della nostra struttura, è necessario ‘aprirla’.
Apriamo cioè il canale che ci permette di trasferire dati da memoria centrale a disco fisso e viceversa, chiamato stream. L’istruzione che ci permette di fare ciò è la seguente:

nome=fopen(“Prova.txt“,”w“).

In questa funzione sono presenti tre parametri:

  • Prova.txt che rappresenta il nome fisico del file.
  • w“, che rappresenta la modalità di apertura di un file (in questo caso in scrittura, ma tratteremo le varie modalità di apertura nelle prossime lezioni).
  • nome, che è il parametro in restituzione, ed è il file che dobbiamo “aprire”

Dopo aver eseguito questa istruzione, sarà possibile osservare che nel percorso dove è presente il file .exe del nostro programma, sarà creato il file .txt.
N.B. Non in tutte le modalità il file viene creato automaticamente! se ad es. in modalità lettura “r”, il file non è già presente, questo non verrà aperto, e verrà compromesso il funzionamento del programma. Vedremo poi l’algoritmo che ci consente di controllare se il file viene aperto o meno.

Ricordiamo inoltre che per evitare errori, (ad es. la rimanenza di dati all’interno della memoria centrale che devono ancora essere trascritti nel file), consigliamo di chiudere sempre il file una volta che abbiamo completato tutte le operazioni con esso.
La chiusura della struttura e di conseguenza dello stream consente di terminare le nostre operazioni sul file in maniera sicura. Ecco la funzione che ci consente di farlo:

fclose(nome);

Per concludere, vi mostriamo come applicare ciò che abbiamo imparato in questa lezione:

Nel programma che segue non viene fatta nessuna operazione su file, ma viene soltanto aperto e chiuso a scopo dimostrativo per mostrarvi il comportamento delle istruzioni.

Cattura