Salve di nuovo,
ho scritto un programma ke mi salva una struttura in un file prima in formato txt poi in binario.
Però nel momento in cui salvo
due file di seguito, in pratica nel secondo file bin ke salvo, mi
ritrovo il contenuto che giustamente ho salvato però se per caso il
numero di elementi del file precedente è maggiore rispetto al
secondo, in quest'ultimo mi ritrovo anke il contenuto del primo:
esempio: salvo nel primo file:
<1
rova>
<2
rova>
<3
rova>
mentre nel secondo file salvo:
<13:ciao>
ora nel file bin del primo file mi ritrovo :
<1
rova>
<2
rova>
<3
rova>
però nel file bin del secondo file mi ritrovo:
<13:ciao>
<2
rova>
<3
rova>
spero di essere stato il più chiaro possibile.
Insomma salva anke quello precedente e non ho idee su come posso
risolverlo.
Posto anke il codice :
codice:
/*Controllo che non ci siano altri file con lo stesso nome*/
if ( (PtrFile = fopen(nome,"r")) == NULL){
/*Apertura in scrittura del file txt*/
if ( (PtrFile = fopen(nome,"w")) == NULL){
puts(ERR7);
}
else {
/*Chiamata della funzione ToString per inizializzare *String */
ToString();
/*Stampa nel file txt*/
fprintf(PtrFile,"%s",*String);
fclose(PtrFile);
}
}
else {
puts(ERR8);/*Messaggio da cancellare*/
return KO_DUPLICATE_FILE;
}
/*Aggiunta dell'estensione bin al nome inserito da utente*/
strcat(nome2,".bin");
/*Apertura in scrittura del file bin*/
if ( (PtrFile2 = fopen(nome2,"wb")) == NULL){
puts(ERR7);
}
else {
/*Scrittura della struttura nel file bin*/
fseek(PtrFile2,(sizeof(sp)), SEEK_SET);
fwrite (&sp,sizeof(sp),1,PtrFile2);
/*Chiusura file*/
fclose(PtrFile2);
}
puts(MSG18);/*Messaggio da cancellare*/
return SUCCESS;
}