Differenze tra le versioni di "Informatica 2 Liceo Scientifico Scienze Applicate/File Binari"

Jump to navigation Jump to search
ortografia
(ortografia)
 
 
* ifstream che serve per gestire un file di input ( da cui possiamo leggere le informazioni e caricarle nelle variabili del programma)
per aprire un file bisogna specificare che e' binario (di default e' di testo)
con l'attributo ios::binary e allora il comando assume la forma<br />
 
 
* fstream che serve per gestire un file di input/output ( su cui possiamo sia leggere e sia scrivere delle informazioni) qui sono presenti due cursori distinti uno per le opeazionioperazioni di lettura e uno per le operazioni di scrittura,
per aprirlo specificare i parametri binary, in, out come in questo esempio
fstream f;
f.open("inventario.dat",ios::binary|ios::in|ios::out);.
* aprire un file (esistente) e aggiungere in coda altre informazioni.
 
* In un file binario e'è possiblipossible non solo leggere/scrivere i dati in sequenza ma anche posizionarsi all'interno del file (in un punto arbitrario) e leggere/scrivere i dati partendo da quel punto , sollevandoci così dall'onere di leggere/scrivere tutti i dati che lo precedono.
 
* E'È possibile allora aprire un file esistente di input , posizionarsi in un punto specifico del file , prima dell'inizio della sequenza binaria di un specifica variabile e leggere solo quella specifica variabile.
 
* E'È possibile allora aprire un file esistente di output , posizionarsi in un punto specifico del file , prima dell'inizio della sequenza binaria di un specifica variabile e sovrascriverla con una nuova sequenza binaria, che va a modificarne il valore.
 
 
* E'È possibile allora aprire un file esistente di input/ e output , posizionarsi in un punto specifico del file , prima dell'inizio della sequenza binaria di un specifica variabile e sovrascrivere/leggere solo quel particolare dato, oppure possiamo aggiungere in coda delle nuove infomazioniinformazioni.
 
In un file binario di input/output ci sono due cursori che simbolicamente indichiamo con g e p , che indicano rispettivamente il punto di lettura e il punto di scrittura sul file. I comandi per leggere la posizione del punto di lettura e' tellg( ), mentre quello di scrittura e' tellp( ), entrambi .restituiscono la posizione rispetto all'inizio del file espressa in byte.<br />
 
 
Per posizionarsi in un punto del file , bisogna esprimere la posizione fornendo un offset rispetto o all'inizio del file, o rispetto alla posizione corrente o rispetto alla fine del file. In pratica posizionati 50 byte dall'inizio del file, oppure posizionati -20 byte dalla fine del file, oppure posizionati 30 byte rispetto alla posizione corrente. <br />
 
 
I simboli usati per espimere esprimere rispetto a che cosa misurare l'offset sono<br />
 
ios::beg per indicare l'inizio del file
ios::end per indicare la fine del file
ios::cur per indicare la posizione corrente
 
mentre per esprimere l'offset basta un numero positivo o negativo che esprime lo spostamento
 
 
per posizionarsi in un punto per la prossima lettura si usa il comando<br />
 
seekg( offset, posizioneriferimento)
write((char *) &a, 4)
 
se non cosciamoconosciamo la dimensione della variabile possiamo usare la funzione<br />
 
sizeof nomevariabile

Menu di navigazione