Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Recuperar registros después de un ZAP
Message
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
01198053
Message ID:
01198087
Views:
10
La funcion que abajo copias no me funcionó con la estructura de tablas de vfp6
ni con las de foxpro 2.6 para D.O.S.

Hice la prueba asi:

create table prueba (datos c(10))
insert into prueba (datos) values ('dato 1')
insert into prueba (datos) values ('dato 2')
insert into prueba (datos) values ('dato 3')
zap
=unzap(3)

y me devolvió basura en vfp6 y lineas en blanco en dos.

No conozco ninguna herramienta que haga esa tarea, lo que hace el
unzap es unicamente agrandar la cabecera de la tabla, pero eso no implica
que los registros de datos estén en ubicaciones contiguas del disco.

c.x.


>Necesito me ayuden con esta función UnZap (Recuperar registros después de un ZAP)
>que obtuve del PortalFox la cual fue escrita por Pablo Roca.
>
>*-
>*Hay veces que incluso después 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 función UnZap, puede recuperar mas registros de los debidos, por tanto después
>*de un UnZap, debe hacer un browse para comprobar que todo esta bien, en caso que se
>*hayan recuperado mas registros de los posibles, debe hacer un Zap y un UnZap con
>*menos registros.
>*-
>
>La Function UnZap recupera los datos de la tabla zapeada pero cuando la abro con un browse para verificar el mismo estos solo son caracteres extraños o mejor dicho aun espacios sin nada de información.
>
>Mi pregunta es, si la información zapeada se puede recuperar o no; o es que debo hacer algo en la función que este omitiendo. Agradecería mucho tu ayuda.
>
>Saludos
>José Luis
Previous
Reply
Map
View

Click here to load this message in the networking platform