PDA

View Full Version : [C] - file binario - aiuto


ilgrigio
09-05-2006, 19:01
ciao a tutti.
vorrei creare un file binario in c dove salvare nome, matricola e altri dati di studenti.
ma poi quando devo aggiornarlo come faccio?
ad esempio nel file ho lo studente mario rossi e giorgio bianchi, se voglio cambiare il nome di giorgio bianchi, come faccio?
devo leggere tutto il file inserirlo in un array di struct e poi risalvarlo ? oppure posso prelevare solo una parte del file, ho provato a spostarmi con fseek, ma non mi aggiorna niente. Se apro il file in scrittura ("w") perdo il resto dei dati, se in append ("a") non mi aggiorna niente.

GRAZIE !

wisher
09-05-2006, 20:00
apri in read con possibilità di scrittura
r+

sottovento
10-05-2006, 07:29
Ciao,
esistono tante tecniche per fare quello che ti interessa.
Immagino che pero' tu sia interessato ad un sistema semplice, dall'esposizione che hai fatto del problema non sembra che tu debba scrivere un nuovo dbms...

Puoi usare la fseek() appunto come ti e' stato suggerito: ovviamente, una volta posizionato, puoi leggere/scrivere. La scrittura ti risultera' semplice se i record che vai a scrivere nel file hanno tutti la stessa lunghezza (presta attenzione, altrimenti ti trovi con un file illeggibile).
Dovrai quindi:

- posizionarti sul record da leggere;
- leggere il record e portartelo in memoria centrale;
- aggiornare il tuo record;
- riposizionarti sul record
- scrivere

E' tutto piuttosto semplice. Se hai problemi, pubblica il codice

High Flying
Sottovento