Recuperar registros despues de un ZAP Enviado por: Pablo Roca Rozas ... Hay veces que incluso despues de un ZAP, se puede recuperar los registros, solo funciona si no se han escrito datos encima de esos registros. FUNCTION UNZAP PARAMETER Y IF Y>0 .AND. USED() IF RECCOUNT()=0 FILENAME=DBF() USE HANDLE=FOPEN(FILENAME,2) IF HANDLE>0 BYTE=FREAD(HANDLE,32) BKUP_BYTE=BYTE FIELD_SIZE=ASC(SUBSTR(BYTE,11,1))+(ASC(SUBSTR(BYTE,12,1))*256) FILE_SIZE=FSEEK(HANDLE,0,2) BYTE8=CHR(INT(Y/(256*256*256))) BYTE7=CHR(INT(Y/(256*256))) BYTE6=CHR(INT(Y/256)) BYTE5=CHR(MOD(Y,256)) BYTE=SUBSTR(BYTE,1,4)+BYTE5+BYTE6+BYTE7+BYTE8+SUBSTR(BYTE,9) =FSEEK(HANDLE,0) =FWRITE(HANDLE,BYTE) =FCHSIZE(HANDLE,FILE_SIZE+(FIELD_SIZE*Y)) =FCLOSE(HANDLE) ENDIF USE &FILENAME ENDIF ENDIF Uso: ZAP =UNZAP(47) && recupera 47 registros Esta funcion UNZAP, puede recuperar mas registros de los debidos, por tanto despues de un UNZAP, debe hacer un browse para comprobar que todo esta bien, en caso que se hayan recuperado mas registos de los posibles, debe hacer un ZAP y un UNZAP con menos registros.