Matriz

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Edmo
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 18 Ago 2003 17:41

Matriz

Mensagem por Edmo »

Caros colegas, boa tarde

Possuo a matriz abaixo para criar DBFs, e este é um arquivo de configurações do meu sistema.
Ocorre que esta matriz possui 100 campos e se eu adicionar mais um o compilador da a seguinte informação "imput buffer overflow" e não gera o executavel.

Tem algum jeito de resolver esta limitação ??

Obrigado

Edson

ASTRU:={{"FANTIT","C",40,0},;
{"ENDTIT","C",40,0},;
{"BAITIT","C",20,0},;
{"CIDTIT","C",20,0},;
{"ESTTIT","C",02,0},;
{"CEPTIT","C",08,0},;
{"DC1TIT","C",14,0},;
{"DC2TIT","C",13,0},;
{"DDDTIT","N",03,0},;
{"FONTIT","N",08,0},;
{"FAXTIT","N",08,0},;
{"SPCTIT","N",09,0},;
{"CADTIT","D",08,0},;
{"SOMTON","N",04,0},;
{"SOMTPO","N",01,0},;
{"VDAATA","C",01,0},;
{"LUCBRU","C",01,0},;
{"REGDEL","C",01,0},;
{"ATUIND","C",01,0},;
{"VERCRE","C",01,0},;
{"ETIPRO","C",01,0},;
{"ETITIP","N",01,0},;
{"FORREL","C",01,0},;
{"LINREL","N",02,0},;
{"DIACAR","N",03,0},;
{"INTPAR","N",03,0},;
{"TIPPAG","C",01,0},;
{"CODCLI","N",06,0},;
{"QTIPAR","N",03,0},;
{"INTLIB","C",01,0},;
{"PARMAX","N",03,0},;
{"DESMAX","N",06,2},;
{"CDGVEN","C",01,0},;
{"FORPAG","C",01,0},;
{"COTDOL","N",10,3},;
{"COTOUR","N",10,3},;
{"FATMIN","N",10,3},;
{"JURDIA","N",06,3},;
{"JURPRZ","N",06,2},;
{"ARRCEN","C",01,0},;
{"PCOUNI","C",01,0},;
{"RECVDA","C",01,0},;
{"ENDVDA","C",01,0},;
{"SITREC","C",01,0},;
{"GAVETA","C",01,0},;
{"GAVCOM","C",01,0},; && PORTA GAVETA
{"INFEST","C",01,0},;
{"QUAPRO","C",01,0},;
{"VERSPC","C",01,0},;
{"LISVDA","C",01,0},; && LISTA PRODUTOS VENDA BALCAO
{"CONSUM","C",01,0},;
{"ATALTE","C",01,0},; && ATIVAR ALT-E
{"RLPVDB","C",01,0},; && ORDEM REL.PROD.VDA.BALCAO
{"TX1MEN","C",55,0},;
{"TX2MEN","C",55,0},;
{"OBPROV","C",01,0},; && OBS.PRODUTO NAS VENDAS
{"DTVDAV","C",01,0},; && DATA VENDAS
{"DTULCP","C",01,0},; && DATA ULTIMA COMPRA
{"ATUSPC","N",04,0},; && ATUALIZAR CONSUL.SPC
{"IMP10C","C",20,0},; && IMPRESSORA
{"IMP12C","C",20,0},;
{"IMPCDL","C",20,0},; && CONDEN LIG
{"IMPCDD","C",20,0},; && CONDEN DES
{"IMPNGL","C",20,0},; && NEGRIT LIG
{"IMPNGD","C",20,0},; && NEGRIT DES
{"IMP06L","C",20,0},; && 6 LPP
{"IMP08L","C",20,0},; && 8 LPP
{"INFCOD","C",01,0},;
{"IMPVDA","C",01,0},;
{"IMPRED","C",01,0},;
{"IMPSEL","C",01,0},;
{"ANOTAC","C",01,0},;
{"FICCLI","C",01,0},;
{"IMPPRE","C",01,0},;
{"IFCLIEN","C",01,0},;
{"IFFORNE","C",01,0},;
{"IFCONVE","C",01,0},;
{"IFVENDE","C",01,0},;
{"IFFECHA","C",01,0},;
{"IFCOMPR","C",01,0},;
{"IFCAIXA","C",01,0},;
{"IFRECEB","C",01,0},;
{"IFPAGAM","C",01,0},;
{"IFPRODU","C",01,0},;
{"IFGRUPO","C",01,0},;
{"IFSUBGR","C",01,0},;
{"IFVENDA","C",01,0},;
{"IFVENIT","C",01,0},;
{"IFVENFE","C",01,0},;
{"IFCHEQU","C",01,0},;
{"IFCARTA","C",01,0},;
{"IFAGEND","C",01,0},;
{"IFTELEF","C",01,0},;
{"IFUSUAR","C",01,0},;
{"IFCONTR","C",01,0},;
{"IFNEGAT","C",01,0},;
{"IFBANCO","C",01,0},;
{"IFCOBRA","C",01,0},;
{"IFBANCO","C",01,0},;
{"IFTEXTO","C",01,0},;
{"IFCONFI","C",01,0}}
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Matriz

Mensagem por Maligno »

Tem algum jeito de resolver esta limitação ??
Crie uma matriz vazia e adicione as matrizes de cada campo, uma a uma. Eu fazia dessa forma.

[]'s
Maligno
http://www.buzinello.com/prg
Edmo
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 18 Ago 2003 17:41

Mensagem por Edmo »

Maligno, obrigado pela dica, mas, da para você me dar um exemplo simples ?

Obrigado

Edson
Edmo
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 18 Ago 2003 17:41

Mensagem por Edmo »

Maligno, boa noite.

Eu consegui criar a matriz e gerar o DBF, porém o DBU nao consegue listar todos os campos, e o dBase, mesmo estando no path, retorna a mensagem "dBase cannot be found (30)" e isso só acontece no XP, então eu tenho que entrar no diretorio do dBase, chamar o program e voltar onde estão os DBFs. Dá para arrumar isto também ?

Obrigado

Edson
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Edmo escreveu:Maligno, obrigado pela dica, mas, da para você me dar um exemplo simples ?
Você tem duas formas, a feia:

Código: Selecionar todos

DBF := {}
AAdd(DBF, {"TEXTO" ,"C",50,0} )
AAdd(DBF, {"NUMERO","N", 5,2} )
AAdd(DBF, {"DATA"  ,"D", 8,0} )
AAdd(DBF, {"LOGICO","L", 1,0} )
E a forma bonita, que é mais prática, por meio dos comandos abaixo.

Código: Selecionar todos

#xcommand ADDFLD <name> IN <array> CHA <size>          =>
                      AAdd(<array>,{<name>,"C",<size>,0})
#xcommand ADDFLD <name> IN <array> NUM <size> [,<dec>] =>
                      AAdd(<array>,{<name>,"N",<size>,[<dec>]})
#xcommand ADDFLD <name> IN <array> DAT                 =>
                      AAdd(<array>,{<name>,"D",8,0})
#xcommand ADDFLD <name> IN <array> LOG                 =>
                      AAdd(<array>,{<name>,"L",1,0})
Note como o código fica bem mais bonito, simples e prático:

Código: Selecionar todos

DBF := {}
AddFld "TEXTO"  in DBF cha 50
AddFld "NUMERO" in DBF num  5,2
AddFld "DATA"   in DBF
AddFld "LOGICO" in DBF
[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Edmo escreveu:Eu consegui criar a matriz e gerar o DBF, porém o DBU nao consegue listar todos os campos, e o dBase, mesmo estando no path, retorna a mensagem "dBase cannot be found (30)" e isso só acontece no XP, então eu tenho que entrar no diretorio do dBase, chamar o program e voltar onde estão os DBFs. Dá para arrumar isto também ?
Se você conseguiu criar o DBF e ele funciona no programa, o problema não está nem no DBF e nem na forma como ele foi criado. É problema no DBU. Se dá pra arrumar, não sei. Nunca usei DBU. Eu fazia manutenções pelo FoxBase. Não é uma maravilha de programa, mas cumpria bem o seu papel, ou pelo menos, fazia o que eu precisava que fizesse. Se quiser experimentar, tem pra download na minha página.

[]'s
Maligno
http://www.buzinello.com/prg
Responder