Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Recuperar registros después de un ZAP
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
01198053
Message ID:
01198087
Vues:
11
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
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform