Ola como faco para criar um dbf novo dentro do programa ?
Obrigado.
Criar Dbf dentro do Programa!
Moderador: Moderadores
-
Carlos.info
- Usuário Nível 1

- Mensagens: 13
- Registrado em: 09 Ago 2005 19:37
Eu crio os meus dbf no dbu.
Compile este programa e execulte no diretorio onde estao os dbf ele gera um prg com os arquivos de geracao do dbfs.
Compile este programa e execulte no diretorio onde estao os dbf ele gera um prg com os arquivos de geracao do dbfs.
Código: Selecionar todos
cls
#include "directry.ch"
aFile1:= file:= {}
aDir:= Directory("*.DBF" , "D")
Aeval(aDir,{|aFile| AADD(aFile1, aFile[1])})
aSort(aFile1)
s:= 0
Set Printer To Gera_dbf.prg
Set Device To Printer
Set printer On
For b:= 1 To Len(aFile1)
Use &(aFile1[b])
Copy Structure Extended To temp
Use temp
xi:= 1
While ! Eof()
If xi == 1
x2:= "If !File(" + Chr(34) + Lower(aFile1[b]) + Chr(34) + ")"
X3:= " aStructure := {}"
@ s, 0 Say x2
s++
@ s, 0 Say x3
s++
xi:= 2
EndIf
x:= 10 - Len(RTrim(Field_Name))
x1:= "aAdd( aStructure, { " + Chr(34) + RTrim(Field_Name) + Chr(34) + Space(x) +;
", " + Chr(34) + Field_Type + Chr(34) + ", " + Str(Field_Len) +;
"," + Str(Field_Dec) + " })"
@ s, 3 Say x1
s++
Skip
End
@ s, 3 Say "dbCreate(" +Chr(34) + Lower(aFile1[b]) + Chr(34) + ", aStructure)"
s++
@ s, 0 Say "EndIf"
s+= 2
Close temp
FErase("temp.dbf")
Next
Set Printer To
Set printer Off
Set Device To Screen
Daniel
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Cara, isso não é dificil nao, basta criar uma matriz com de 4 colunas com os as seguintes informaçôes: nome do campo, tipo do campo, tamanho do campo e, casas decimais do campo (somente para numericos).
Seria algo assim:
matriz := {}
aadd( matriz, {"nome","C",30,0} )
aadd( matriz, {"data","D",8,0} )
aadd( matriz, {"saldo","N",11,2} )
depois para criar o dbf:
dbCreate(matriz)
acho q é só isso mesmo, falou?
Fui...
Seria algo assim:
matriz := {}
aadd( matriz, {"nome","C",30,0} )
aadd( matriz, {"data","D",8,0} )
aadd( matriz, {"saldo","N",11,2} )
depois para criar o dbf:
dbCreate(matriz)
acho q é só isso mesmo, falou?
Fui...
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Vc esqueceu de colocar o nome do arquivo a ser criado:Stanis Luksys escreveu:Cara, isso não é dificil nao, basta criar uma matriz com de 4 colunas com os as seguintes informaçôes: nome do campo, tipo do campo, tamanho do campo e, casas decimais do campo (somente para numericos).
Seria algo assim:
matriz := {}
aadd( matriz, {"nome","C",30,0} )
aadd( matriz, {"data","D",8,0} )
aadd( matriz, {"saldo","N",11,2} )
depois para criar o dbf:
dbCreate(matriz)
acho q é só isso mesmo, falou?
Fui...
dbcreate(<nome do arquivo>, <array estrutura>, <driver RDD>)
Nesse caso, o arquivo chamado CLI01.DBF ficaria:
dbcreate("cli01", matriz)

