PDA

Visualizza la versione completa : [c++] file ad accesso random come visual basic


Mira91
18-09-2008, 21:33
Ciao a tutti. In visual basic si possono scrivere file Openmode.random, ci sono le funzioni fileput (record) 'dove record è una structure, e fileget (record, pos). Bene in c++ è possibile fare qualcosa di analogo? sfruttando fstream (quindi senza File* F, che è pure C). Perché ios non contiene un accesso random o qualcosa di simile, ma esistone le funzioni tellp e seek, che però permettono di spostarsi di byte. Inizialmente avevo provato con on overloading di operator << per poter scrivere un buffer di byte.

Mira91
18-09-2008, 21:50
come non detto, sono stato troppo precipitoso a chiedere. Appenda dopo aver postato la domanda ho trovato la mia risp!


//scrittura:
fstream file ("PROVA.txt", ios::out| ios::binary);
RecArt.cod = 1;
RecArt.descr = "ACCCC";
RecArt.prezzo = 16.20;
RecArt.qta = 14;
RecArt.scorta = 4;
file.write (reinterpret_cast<char*>(&RecArt), sizeof(RecArt));
..

//lettura:
fstream file ("PROVA.txt", ios::out| ios::binary);
file.seekg (pos * sizeof(RecArt), ios::beg);
file.read(reinterpret_cast<char*>(&RecArt), sizeof(RecArt));
//mostra recart


Avevo fatto tutto giusto, ma mi dava errore nel cast "semplice", mentre con reinterpret_cast va che è una meraviglia. Grazie lo stesso. Discussione chiusa

Loading