Grazie per la risposta veloce.
I miei dati sono int che vanno scritti in un file binario.
Ho scritto questo metodo per eseguire la lettura:
//1° parametro indica la posizione dell'elemento (1,2,3,...)
//2° parametro: nome file
int getElx(int pos, char* nomMat)
{ int dr;
FILE *readF;
readF= fopen(nomMat, "r+b");
fseek (readF, pos, SEEK_SET);
fread(&dr,sizeof(dr),1,readF);
fclose(readF);
return dr;
}
Ho scritto questo metodo per eseguire la scrittura:
//1° parametro indica la posizione dell'elemento (1,2,3,...)
//2° parametro: valore da scrivere
//3° parametro: nome file
int writeElx(int pos, int dv,char* nomMat){
FILE *destinationFile;
int dv1;
long int iPosizione1;
dv1 =dv;
destinationFile = fopen(nomMat, "a+b");
size_t bytescritti=0;
iPosizione1 = ftell (destinationFile);
fseek (readF, iPosizione1, SEEK_SET);
bytescritti= fwrite(&dv1,sizeof(dv1),1,destinationFile);
fclose(destinationFile);
return 0; //scrittura ok
}
La lettura con getElx mi va bene, però la scrittura avviene sempre in coda al file.
Come posso aggiornare solo un elemento e non mettendolo in coda?
Grazie dell'aiuto
|