|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
[C] Modificare un file
Salve di nuovo, volevo chiedervi se è possibile modificare il contenuto di un file, mi spiego meglio.. ammettiamo che io ho per esempio 24 dati e io volessi modificare il contenuto del 13 è possibile farlo?
Io dalla mia somma ignoranza avevo pensato a qualcosa del genere.. ammettendo che n[1] contenga il numero di record ovvero 13 per esempio e il record da sostituire sia in "servizio" definita come una struttura di dati di nome service, è possibile fare una cosa del genere? oppure bisogna fare una cosa piu macchinosa del tipo appoggiarsi ad un file temporaneo? Codice HTML:
pf=fopen("servizi.dat","ab");
if (pf==NULL) printf("Impossibile aprire il file\n\n");
else
{fseek(pf,(n[1]-1)*sizeof(struct service),SEEK_SET);
fwrite(&servizio,sizeof(struct service),1,pf);
fclose(pf);
}
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Facendo il calcolo (n[1]-1) se ne deduce che il tuo indice in n[1] è 1-based ma questa è una questione tua. Il tuo codice è valido, salvo il fatto che non hai controllato il valore di ritorno di fseek/fwrite.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
Ok.. il problema è che nonostante l'fseek lui continua a scrivermi in coda.. ovviamente il file è organizzato a record.. non capisco dove sia il problema.. se può aiutare posso postare l'intera funzione..
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perché lo apri in appending ? Aprilo in r+b. In appending ti metti sull'ultimo record.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
giusto.. problema risolto.. nn sapevo della possibilità dell'r+!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:05.




















