dopo alcune correzzioni mi sposto nel file in maniera corretta.
Salto l'ultimo record che so per certo che non mi interessa, quindi parto dal penultimo record
codice:
fseek(fpi,-(long)(2*sizeof(SRP)),SEEK_END);
do
{
fread(&SRP,sizeof(SRP),1,fpi);
bCondizione=(memcmp(SRP.PrimaPaginaValore,"X",1)==0);
if(bCondizione)
{
if(fseek(fpi,-(long)(1+2*(sizeof(SRP))),SEEK_CUR)==0)
{
fread(&SRP,sizeof(SRP),1,fpi);
fseek(fpi,-(long)(1+sizeof(SRP)),SEEK_CUR);
memcpy(SRP.UltimaPaginaValore,"X",1);
fwrite(&SRP,sizeof(SRP),1,fpi);
fseek(fpi,1,SEEK_CUR);
}
}
}while(fseek(fpi,-(long)(1+2*(sizeof(SRP))),SEEK_CUR)==0);
però sembra che fwrite non abbia nessun effetto, eppure in debug ci passo.
In poche parole il file non viene modificato, nemmeno la data di modifica del file viene cambiata!!!
Ma è corretto che per sovrascrivere un record apro il file in modalità "rwb" e scrivo con fwrite?