FoxPro/Visual FoxPro - arreglar tabla DBF de FPW26

 
Vista:

arreglar tabla DBF de FPW26

Publicado por antonio patiño mendez (60 intervenciones) el 08/12/2002 19:13:36
amigos:
ojala alguien pudiera decirme como arreglar una tabla DBF de foxpro 2.6 para windows. esta se daño al congelarse la PC por no se que causa y el asunto es que ya no la reconoce el programa que la usa como DBF y sin embargo la rabla la puede abrir el EXCEL y el contenido se ve bien.
gracias de antemano por su apoyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:arreglar tabla DBF de FPW26

Publicado por ZTC (27 intervenciones) el 09/12/2002 18:31:42
para l1file
l1err=.f.
store fopen(l1file,2) to l1mess
store fseek(l1mess, 0, 2) to l1ndx_sz
=fseek(l1mess,0)
l1str=fread(l1mess,4)
l1ass=readx(4)
l1head=readx(2)
l1rec=readx(2)
l1actual=(l1ndx_sz-(l1head+1))/l1rec
l1actual=iif(l1ndx_sz=l1head,0,l1actual)
if l1actual<>l1ass
l1err=.t.
* Reparando ...
=fseek(l1mess,0)
l1str=fread(l1mess,4)
l1replace=right('00000000'+hex(l1actual),8)
l1tmp=''
for l1loop=1 to 4
l1tmp=chr(dec(substr(l1replace,l1loop*2-1,2)))+l1tmp
endfor
=fwrite(l1mess,l1tmp)
else
* Esta Ok ...
endif
= fclose(l1mess)
return(l1err)

Function Readx
parameter l1len
l1str=fread(l1mess,l1len)
l1tmp=''
for l1loop=1 to l1len
l1tmp=right('00'+hex(asc(substr(l1str,l1loop,1))),2)+l1tmp
endfor
l1value=dec(l1tmp)
return l1value

Function Hex
parameters l1int
private l1loop,l1hex,l1str
l1str='0123456789ABCDEF'
l1hex=''
for l1loop=7 to 0 step -1
l1part=int(l1int/(16^l1loop))
l1hex=l1hex+substr(l1str,l1part+1,1)
l1int=l1int-l1part*(16^l1loop)
endfor
do while left(l1hex,1)='0'.and.len(l1hex)>1
l1hex=substr(l1hex,2)
enddo
return l1hex

Function Dec
parameters l1hex
private l1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:arreglar tabla DBF de FPW26

Publicado por Victor (100 intervenciones) el 09/12/2002 19:51:25
Tienes dos alternativas:

1. fijate si existe el respaldo (.bak) y podras abrirla ej:
use archivo.bak y despues copiala con otro nombre

2. Ya que la puedes ver en excel copiala con otro nombre y es todo
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar