Arquivo Texto

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Arquivo Texto

Mensagem por Laudelino Scarmagnani »

Pessoal, bom dia!
Preciso orientação de como, a partir da leitura de um arquivo DBF, gerar um arquivo .TXT. Se alguem teria um exemplo, me ajudaria muito. O objetivo deste arquivo .TXT é para gerar o arquivo para a Receita Estadual, referente aos livros fiscais.
Agradeço muito a ajuda!
Laudelino Scarmagnani
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Laudelino, dá uma olhada no NG, nas funções de baixo nível... FOPEN(), FWRITE() etc. Com elas, vc pode criar o seu TXT do jeito que precisar.
bato
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 09 Set 2007 09:45
Localização: Brasil

Mensagem por bato »

Não esquecer de que deves obedecer o lay-out fornecido para a geração do referido arquivo texto...
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Mensagem por Laudelino Scarmagnani »

Nunca usei o NG, mas vou tentar encontrar. Desculpem! É que não uso muito o clipper, por isso a dificuldade.
Laudelino.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Laudelino, se vc quiser, me add no MSN, o endereço tá no meu perfil.

Se vc não tiver o NG (Norton Guide) - um guia conhecido genericamente como um help muito valioso pro Clipper, eu lhe passo ele e lhe ensino a usar.
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

Boa noite Laudelino.

Use o comando Copy, cuja sintaxe é:

Código: Selecionar todos

Use teste.dbf
Copy NOME, ENDERECO, CIDADE to Saida.txt SDF

ou

Copy ALL to Saida.txt SDF
O SDF indica que o arquivo Saida será no formato ASCII.

No primeiro caso você lista os campos que deseja copiar. Eu não testei e não me lembro mais se, no primeiro caso, o separador é vírgula mesmo. Teste.

No segundo caso todos (ALL) os campos são copiados.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
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 »

Use o comando Copy
Acho que com o COPY não dá pé. Ele disse que é pra Receita Estadual. Então, deve ser o SINTEGRA.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

Mensagem por RamonXHB »

Não poderia usar Set Printer to Arquivo.txt e usar uma rotina tipo relatorio ???
Grings
Usuário Nível 3
Usuário Nível 3
Mensagens: 340
Registrado em: 18 Ago 2004 13:51

Mensagem por Grings »

Gere o relatório da mesma forma como se fosse enviar para a impressora, porém envie para um arquivo texto através do comando Set Printer To ...
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Vc pode usar:

set alternate to <nome do arquivo.txt>
set alternate on

...
?? <linha de dados>
...
while !<arquivo>->(eof())
? <mais linha de dados>
<arquivo>->(dbskip())
end
...

set alternate off
set alternate to

lembrando que:
? - pula uma linha e imprime as informações.
?? - imprime as informações sem pular linha.

Espero ter ajudado. Boa sorte.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
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 »

Isso realmente resolve, mas ainda acho muito melhor montar o arquivo e gravar por FWrite().
Aliás, uma lembrança: se for o SINTEGRA mesmo, a estrutura vai mudar, conforme dispõe a legislação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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 »

Laudelino Scarmagnani escreveu:É que não uso muito o clipper, por isso a dificuldade.
Clipper ou XHarbour? Se é Clipper, você usou a seção errada. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Mestre Maligno...
Funciona e eu uso isso para gerar todos os tipos de informes da empresa.
É só uma questão de respeitar o layout fornecido pelo solicitante.

Mas tudo bem. Não vamos criar atrito.
Como o Laudelino esta precisando de ajuda, vamos esperar o retorno dele de como irá fazer o arquivo.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
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 »

Ah, sim. Sua dica funciona e, aliás, muito bem. Jamais diria o contrário. Só apresentei minha preferência pessoal, que é pelas funções de baixo nível. Mas o importante é que os resultados serão igualmente alcançados. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder