|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2005
Città: Bari
Messaggi: 349
|
[C++] Cancellazione dati da un file binario
salve ragazzi, ho una domandina..
premetto che questo è un dubbio che mi assale da un po' di tempo, sto cercando di trovare una soluzione ma, a quanto pare, sono al solito "punto morto". Allora: Ho un file binario con dei dati strutturati al suo interno...per comodità facciamo finta che siano "char [12]; int". Voglio cancellare il terzo dato strutturato presente nel file: che voi sappiate esiste una funzione che lo faccia in automatico? La mia idea per "eliminare" dati da un file bin è quella di caricare tutto in memoria (sto gestendo un vector), eliminare dal vettore dinamico, aprire un ofstream e sovrascrivere il file in questione... esiste qualche altro modo per far questo? Vito
__________________
Si può vincere una guerra in due...o forse anche da solo. Si può estrarre il cuore anche al più nero assassino, ma è più difficile cambiare un'idea! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non esiste modo di farlo, se non con il metodo che ha detto te o simili.
Anzi devi anche prima eliminare il file originale o comunque troncarne a zero la lunghezza perché altrimenti l'ultimo record rimane doppio (l'ultimo originale non viene sovrascritto). Soluzione un po' più furba sarebbe quella di andare ad immettere nella struttura un byte di validità e dopo per "eliminare" la struttura basterebbe settare a "non valido" il byte. Ovviamente al momento di caricare le strutture dati, quelle con il byte a "non valido" devono essere ignorate. Comunque prima o poi il file dovrà essere compattato |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2005
Città: Bari
Messaggi: 349
|
bene! quantomeno so che non ho impiegato del tempo prezioso per studiare un metodo già implementato in qualche comodissima funzione!!
Vito PS un pomeriggio senza aver nemmeno studiato le stringhe (ero alle primissime armi col C) mi inventai la strcmp lavorando sui codici ascii... ^^' non ti dico il misto di soddisfazione et bestemmia (lol) quando scoprii che esisteva già
__________________
Si può vincere una guerra in due...o forse anche da solo. Si può estrarre il cuore anche al più nero assassino, ma è più difficile cambiare un'idea! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:29.



















