File binari in c++
Ciao a tutti!
Vorrei sapere, se in c++, è possibile cancellare un record su un file binario, senza dover riscrivere l' intero file.
Grazie!
Vorrei sapere, se in c++, è possibile cancellare un record su un file binario, senza dover riscrivere l' intero file.
Grazie!
Risposte
Dipende tutto dal formato del file. Non è comunque possibile eliminare una sequenza arbitraria di byte da un file binario direttamente, senza dover riscrivere tutta la parte successiva del file se questa era la tua idea.
Grazie per l' interessamento!
Quello che voglio fare è ridimensionare il numero di record di un file, eventualmente, sposto i record da eliminare in fondo.
Come posso fare?
Quello che voglio fare è ridimensionare il numero di record di un file, eventualmente, sposto i record da eliminare in fondo.
Come posso fare?
Non mi viene in mente nessun metodo standard per farlo. Che io sappia non esiste infatti nessuna funzione per ridimensionare un file. Normalmente ti consiglierei di usare un file temporaneo in cui sposti i record alla fine, ma senza cancellarli, e poi alla chiusura dell'applicazione o nei salvataggi scrivi il contenuto corrette nel file finale riscrivendolo. Se devi elaborare molto la struttura del file è comunque spesso meglio non lavorare direttamente su di esso, ma fare tutte le operazioni in memoria per poi scrivere solo il risultato finale. L'accesso al disco è infatti molto più lento di quello alla memoria RAM (per non parlare dell'accesso ai vari livelli di cache). Per commenti più precisi dovrei sapere che cosa stai cercando di fare.
Grazie per il suggerimento.