Criar Dbf dentro do Programa!
Enviado: 07 Dez 2005 10:37
Ola como faco para criar um dbf novo dentro do programa ?
Obrigado.
Obrigado.
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
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...