Tenho um programador que criou um programa para minha empresa em clipper. Hoje preciso que ele gere um arquivo txt de uma empresa de contabilidade. Ele disse que não consegue e alega que “o arquivo tem muitos campos e no total tem 1789 colunas. Quando uso sdf do clipper para transformar os registros a linguagem do clipper nao suporta um tamanho grande so aceita 255. Ja tentei separar por campos mas tem alguns campos que tem mais 300 de tamanho. Este e o problema que nao consigo transformar em txt os registros”.
Vocês podem nos indicar um modo de fazer esse arquivo txt???
um abraço
agradeço a ajuda
É possível criar txt que tenha linha com + de 500 caracteres
Moderador: Moderadores
-
JADSON C SILVA
- Usuário Nível 1

- Mensagens: 1
- Registrado em: 05 Out 2012 22:32
- Localização: JOÃO PESSOA PB
É possível criar txt que tenha linha com + de 500 caracteres
Editado pela última vez por Pablo César em 06 Out 2012 00:06, em um total de 1 vez.
Razão: Mensagem editada para formatação de texto em letras minúsculas. Evite postar mensagens com texto TOTALMENTE EM LETRAS MAIÚSCULAS.<br>Veja as Regras do Fórum:<br>7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio.
Razão: Mensagem editada para formatação de texto em letras minúsculas. Evite postar mensagens com texto TOTALMENTE EM LETRAS MAIÚSCULAS.<br>Veja as Regras do Fórum:<br>7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
É possível criar txt que tenha linha com + de 500 caracteres
Seja bem vindo ao fórum !
Bom respondendo a sua pergunta no título: SIM é possível sim, mas não em Clipper com SDF.
Vamos por parte... disse Jack o estripador... rs
Sugiro que faça uma cópia que contenha apenas de 2 a 4 registros (por exemplo), compacte o arquivo dbf e anexe a sua próxima mensagem aqui no tópico.
Bom respondendo a sua pergunta no título: SIM é possível sim, mas não em Clipper com SDF.
Você quis dizer: Tenho um programador na minha empresa que criou um programa em clipper. rsJADSON C SILVA escreveu:Tenho um programador que criou um programa para minha empresa em clipper.
Vamos por parte... disse Jack o estripador... rs
Se ao que se refere o seu programador, sobre 1789 colunas (sendo 1789 campos), pergunto precisa gerar com todos esses campos ?Hoje preciso que ele gere um arquivo txt de uma empresa de contabilidade. Ele disse que não consegue e alega que “o arquivo tem muitos campos e no total tem 1789 colunas.
Teria que fazer testes diretamente com o seu banco de dados. Mas a principio, pode ser feito um aplicativo aparte para gerar este arquivo txt. E terá que ser em Harbour (outra ferramenta de programação em 32 bits). Ou fazer uma tentativa de gerar esse arquivo utilizando funções de baixo nível (FOPEN/FWRITE/FCLOSE) e não o SDF do Clipper.Quando uso sdf do clipper para transformar os registros a linguagem do clipper nao suporta um tamanho grande so aceita 255. Ja tentei separar por campos mas tem alguns campos que tem mais 300 de tamanho. Este e o problema que nao consigo transformar em txt os registros”.
Sugiro que faça uma cópia que contenha apenas de 2 a 4 registros (por exemplo), compacte o arquivo dbf e anexe a sua próxima mensagem aqui no tópico.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
É possível criar txt que tenha linha com + de 500 caracteres
Olá Jadson,
Se a idéia e gerar um SDF, você pode fazer assim:
Já se você precisa de um TXT com separadores, ou para abrir no Excel, é só dizer que com pequena alteração neste exemplo é possível.
Se a idéia e gerar um SDF, você pode fazer assim:
Código: Selecionar todos
Function Main()
Local i, cps, registro, prilin := .T.
Use seu_arquivo
Set Device To Printer
Set Printer To "Arquivo.SDF"
While !Eof()
registro := ''
For i = 1 To Fcou()
cps := Field( i )
If ValType( &cps. ) = "C"
registro += &cps.
ElseIf ValType( &cps. ) = "D"
registro += DToC( &cps. )
ElseIf ValType( &cps. ) = "N"
registro += Str( &cps. )
ElseIf ValType( &cps. ) = "L"
registro += If( &cps., ".T.", ".F." )
Endi
Next
If prilin
prilin := .F.
@ 0, 0 Say registro
Else
@ PRow() + 1, 0 Say registro
Endi
Skip
Endd
Set Printer To
Set Device To Screen
Return NilAbraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
É possível criar txt que tenha linha com + de 500 caracteres
Sim, é possível, usando FCREATE, FWRITE (funções de baixo nível do Clipper).
Um exemplo rápido, se precisar mais detalhes, avise.
Parece complicado, mas é muito simples. Ah, esquece o SDF.
Com estas funções de baixo nível, vc pode ter linhas com trocentos caracteres, não importando o tamanho do DBF.
Um exemplo rápido, se precisar mais detalhes, avise.
Código: Selecionar todos
arq="c:\texto.txt"
arqh=fcreate(arq,0) // cria um arquivo texto
if !arqh>0 // confere se o arquivo foi criado
?"Erro ao criar arquivo txt"
quit
endi
use meudbf new excl // abre o dbf, seja qual for
txt:=campo1+" "+campo2 // considerando dois campos texto
txt_t:=fwrite(arqh,txt)
if !txt_t=len(txt) // confere se a gravação deu certo
?"Erro ao gravar arquivo"
quit
endi
txt:=dtoc(campo3) // campo DATA, convertido pra texto
txt_t:=fwrite(arqh,txt)
if !txt_t=len(txt)
?"Erro ao gravar arquivo"
quit
endi
* repete pra quantos campos houver, com as conversões que precisar
* quando quiser quebra de linha, inclui o que segue:
txt:=chr(13)+chr(10)
txt_t:=fwrite(arqh,txt)
if !txt_t=len(txt)
?"Erro ao gravar arquivo"
quit
endi
quit
* aqui, se nao deu algum erro durante a gravação,
* vai estar criado o arquivo c:\texto.txt
* com qualquer tamanho, sem quaisquer restrições
Com estas funções de baixo nível, vc pode ter linhas com trocentos caracteres, não importando o tamanho do DBF.
É possível criar txt que tenha linha com + de 500 caracteres
Ola !
Caso tenha afinidade com a linguagem SQL, poderá usar: Database Desktop ( Delphi ), FoxPro ou o DBF Commander; criando assim Scrip Sql para utilizar em qquer outro formato de dados...
Sucesso...
Caso tenha afinidade com a linguagem SQL, poderá usar: Database Desktop ( Delphi ), FoxPro ou o DBF Commander; criando assim Scrip Sql para utilizar em qquer outro formato de dados...
Sucesso...
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA

