Arquivo TXT para DIRF

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

locio
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 27 Out 2006 14:21

Arquivo TXT para DIRF

Mensagem por locio »

Obrigado a todos. Consegui. Apenas a titulo de esclarecimento informo que a unica forma que funcionou foi com a utilização do fwrite()

SELE ARQDBF
GO TOP

FHANDLE = FCREATE(ARQTXT,2)

WHILE !EOF()

FWRITE (FHANDLE, CAMPO + CHR(13) + CHR(10) )

SELE ARQDBF
SKIP
ENDDO

FCLOSE(FHANDLE)

Ai está o algoritmo completo. Simples.

Obrigado a todos,

José Malta Lócio
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

SELE ARQDBF
GO TOP

FHANDLE = FCREATE(ARQTXT,2)

WHILE !EOF()

FWRITE (FHANDLE, CAMPO + CHR(13) + CHR(10) )

SELE ARQDBF <<== Pode apagar esta linha!!!
SKIP
ENDDO

FCLOSE(FHANDLE)
"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
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

O arquivo do DIRF teria que ser gerado com atributo "H" ? Por quê está FCREATE(ARQTXT,2) e não FCREATE(ARQTXT,0) ?
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.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Pessoal,

Aproveitando o tópico...

Qual a diferença de se criar TXTs usando FCREATE/FWRITE ou utilizar SET PRINTER TO arquivo/@ PROW() ???? Há algum ganho de velocidade nisso ???

Jânio

PS: Uso SET PRINTER TO arquivo/@ PROW() principalmente na criação de relatórios para serem visualizados na tela.
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
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 »

Acredito que não haja nenhuma diferença tão grande de velocidade. No final dá elas por elas. :)
[]'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 »

Com o set printer vc manda criar um arquivo no formato texto.
Se vc usa @ say quando vc muda a coordenada de linha, no arquivo texto, a linha anterior recebe o CR+LF.
Se vc usa ?, no arquivo texto é mandado um CR+LF e depois estra o texto que vc mandou gravar.
Para não pular a linha antes de gravar os dados, use ??.

No final do arquivo texto vai um caracter de final de arquivo. CHR(26).

O FWrite faz gravação em baixo nivel. É uma sequência de bytes, não importando o que seja.
Tanto que para montar um arquivo texto, ao final de cada linha, vc tem que mandar obrigatoriamente o CR+LF.
Com as funções de baixo nível, vc abre quaisquer tipo de arquivo.

Ah! CR+LF é para formato DOS. Se for no formato UNIX é só o LF.
"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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Ok.

Pensei que fosse mais rápido usando FCREATE/FWRITE.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
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 »

Pode até ser mais rápido. Depende da implementação. Mas sem dúvida, as funções de baixo nível são bem mais flexíveis, apesar de, normalmente, darem mais trabalho. Mas isso é relativo também. Fazendo algumas funções de abstração pode ficar até bem mais fácil.
[]'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
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Info:
a) FCREATE(ARQTXT,0) // abre somente leitura
b) FCREATE(ARQTXT,2) // abre leitura/gravação
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Pois é... Eolo eu perguntei mas o Locio ainda não respondeu. Também não sei dizer se a normativa da Receita é para criar o arquivo em modo oculto... (acho que foi erro, mesmo)

Obs.: Alias Eolo, o 2 do FCREATE é HIDEN not READONLY...
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.
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 »

Ops, falha minha. Confundi com o FOPEN():

fopen(arqtxt,2) // abre em modo leitura e gravação

Aliás, tem mesmo algo de errado no FCREATE com 2! Pra que CRIAR um arquivo HIDDEN? O assunto é tão confidencial que nem o próprio criador pode ver? (não resisti à brincadeira...)

Agora, sério: eu acho que muita gente COPIA e COLA coisas, compila e manda rodar. Sem perguntar o porque delas, sem entender o que está acontecendo. Aquilo de ganhar um peixe ao invés de aprender a pescar...
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

hihihi, acho que sim... essa foi boa ! Mas quem sabe ? Esse pessoal do órgão público... vou te dizer... querem tudo TOP-SECRET... hihihi
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.
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 »

Às vezes o cidadão quer criar um arquivo oculto para esconder algum dado sigiloso. Agora, não é porque fica oculto que não pode ser acessado.
[]'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