|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Piacenza d'Adige (PD)
Messaggi: 651
|
Cancellare una struttura da un file binario in C
Nelle dispense del mio prof non ho trovato nulla a riguardo, nè nel mio manuale di C.....so che ci sarebbe l'alternativa di porre la struttura uguale a zero...ma preferirei cancellarla...come si fa....?
thanks |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se i tuoi record stanno tutti in memoria riscrivi il file da zero e salti il record che vuoi cancellare...
Se stanno su un disco devi crearti un nuovo file saltando il record che vuoi cancellare...e alla fine canclellare il file originale e rinominare il file nuovo con il nome del file vecchio... Se i record sono a lunghezza fissa allora puoi sovrascrivere il record che vuoi sovrascrivere con il record sccessivo e così via... L'ultimo record ti avanza e lo devi invalidare in qualche modo... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2000
Città: BARI
Messaggi: 1983
|
intendi dire cancellare un record su disco?
cosa indenti per struttura? |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Piacenza d'Adige (PD)
Messaggi: 651
|
Quote:
intendo questa: typedef struct { int campo1; char campo2; double campo3; }struttura; memorizzata in un file binario................ |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Modena(I) - Sophia Antipolis(F) - London(UK)
Messaggi: 1437
|
scrivi il file binario in un altro file e poi lo rinomini! oppure lo apri in wb+ e poi sovrascrivi tutte le strutture saltando quella che vuoi cancellare e da li in poi le riscrivi una posizioni + in dietro! comunque io farei la prima! + comoda e semplice! l'unica cosa ricordati che ,se la copi con un ciclo for e apri i 2 files in ab+ , di leggere tute le volte il files altrimenti lo riscrivi non vai avanti esempio:
fp=fopen("pippa.dat",ab+"); fp2=fopen(pippanew.dat",ab+"); for(i=0;i<numerostrutture;i++) { a=fread(......sizeof etc........); if((a!=NULL) } e poi rinomini il files che non mi ricordo + come si faccia! non ti assicuro che sia giusto perchè una domanda cazzçça del genere mi è costata il 30 e forse anche la lode all'esame di Fondamenti B Ciao Alessio |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:37.



















