Olá,
Tem como verificar se a estrutura atual de um determinado .DBF foi criado pelo clipper ou pelo harbour ?
Obrigado,
Sobre Estrutura do DBF
Moderador: Moderadores
Sobre Estrutura do DBF
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Sobre Estrutura do DBF
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.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Sobre Estrutura do DBF
Olá Itamar,
Fiz um exemplo simples com tipos de variáveis existentes em Harbour e Clipper:
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
Arquivo criado pelo clipper
Diante todas estas diferenças irei recriar todos meus .DBF´s em harbour por questão de segurança.
Obrigado pela dica,
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
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
Código: Selecionar todos
0312091420202020C220232020202020
20202020202020202020202020202020
434341522020F32594544943DE162020
05200B200B20C25A9E54C62192370B20
4E4E55492020F3259454494EDE162020
0A200B200B20C25A9E54C62192370B20
4E4E55442020F3259454494EDE162020
0A020B200B20C25A9E54C62192370B20
444441542020F32594544944DE162020
08200B200B20C25A9E54C62192370B20
4C4C4F472020F3259454494CDE162020
01200B200B20C25A9E54C62192370B20
0D201A
Obrigado pela dica,
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Sobre Estrutura do DBF
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
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

