ho provato a mettere giù il codice, ma anzichè spostarmi indietro di un record alla volta (-sizeof(SRP)) mi sposto indietro di un record ed un byte alla volta... non ne capisco il motivo...
codice:
	fpi=fopen(NomeFilePagineTmp,"rwb");
	
	fseek(fpi,-(long)(sizeof(SRP)),SEEK_END);
	do
	{
		fread(&SRP,sizeof(SRP),1,fpi);
		bCondizione=(memcmp(SRP.PrimaPaginaValore,"X",1)==0);
		if(bCondizione)
		{
			if(fseek(fpi,-(long)(2*(sizeof(SRP))),SEEK_CUR)==0)
			{
				fread(&SRP,sizeof(SRP),1,fpi);
				fseek(fpi,-(long)(sizeof(SRP)),SEEK_CUR);
				memcpy(SRP.UltimaPaginaValore,"X",1);
				fwrite(&SRP,sizeof(SRP),1,fpi);
			}
		}
	}while(fseek(fpi,-(long)(2*(sizeof(SRP))),SEEK_CUR)==0);