Página 1 de 1

Sobre Estrutura do DBF

Enviado: 20 Set 2018 09:35
por rossine
Olá,

Tem como verificar se a estrutura atual de um determinado .DBF foi criado pelo clipper ou pelo harbour ?

Obrigado,

Sobre Estrutura do DBF

Enviado: 20 Set 2018 12:16
por Itamar M. Lins Jr.
Ola!
Não sei, mas eu criaria um DBF no clipper e o mesmo código, usando harbour e usuaria um editor hexadecimal por exemplo para achar alguma diferença.
Depois eu criaria uma função genérica usando fopen, fseek para procurar essa diferença.
Tem campos novos que o clipper não aceita.

Saudações,
Itamar M. Lins Jr.

Sobre Estrutura do DBF

Enviado: 20 Set 2018 13:57
por rossine
Olá Itamar,

Fiz um exemplo simples com tipos de variáveis existentes em Harbour e Clipper:

Código: Selecionar todos

request DBFCDX

function MAIN

cls

? rddsetdefault()
rddsetdefault( "DBFCDX" )
? rddsetdefault()

aStr := { { "cCar", "C",   5, 0 }, ;
          { "nNui", "N",  10, 0 }, ;
          { "nNud", "N",  10, 2 }, ;
          { "dDat", "D",   8, 0 }, ;
          { "lLog", "L",   1, 0 } }

dbcreate( "arqtst.dbf", aStr, "DBFCDX" )

return NIL

E os arquivos criados realmente são muito diferentes.
Abri os arquivos criados do Notepad++ e fiz uma conversão do caracteres apresentados de Ansi -> Hexa e veja com são diferentes:

Arquivo criado pelo harbour

Código: Selecionar todos


0376091420202020C220232020202020
20202020202020202020202020202020
43434152202020202020204320202020
05202020202020202020202020202020
4E4E5549202020202020204E20202020
0A202020202020202020202020202020
4E4E5544202020202020204E20202020
0A022020202020202020202020202020
44444154202020202020204420202020
08202020202020202020202020202020
4C4C4F47202020202020204C20202020
01202020202020202020202020202020
0D201A

Arquivo criado pelo clipper

Código: Selecionar todos

0312091420202020C220232020202020
20202020202020202020202020202020
434341522020F32594544943DE162020
05200B200B20C25A9E54C62192370B20
4E4E55492020F3259454494EDE162020
0A200B200B20C25A9E54C62192370B20
4E4E55442020F3259454494EDE162020
0A020B200B20C25A9E54C62192370B20
444441542020F32594544944DE162020
08200B200B20C25A9E54C62192370B20
4C4C4F472020F3259454494CDE162020
01200B200B20C25A9E54C62192370B20
0D201A
Diante todas estas diferenças irei recriar todos meus .DBF´s em harbour por questão de segurança.

Obrigado pela dica,

Sobre Estrutura do DBF

Enviado: 25 Set 2018 16:42
por cnavarro
La diferencia en los bytes 1 al 3 corresponden a la fecha de creación, no ha de tenerlos en cuenta
Creo que es asi:

76 - 09 - 14 =>
7 * 16 + 6 * 1 = 118 + 1900 = 2018
0 * 16 + 9 * 1 = 9
1 * 16 + 4 * 1 = 20
( 20/09/2018 )

http://www.dbfree.org/webdocs/1-documen ... ations.htm