Página 1 de 2
Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 09:12
por Altemir
Bom dia,
Gostaria de uma ajuda dos amigos se possível!
tenho um arquivo de rolagem chamado NFE.DBF c/um campo apenas, chamado de CAMPO1 - (tipo Caracter - tamanho= 250)
Gostaria de criar um arquivo.TXT deste arquivo NFE.DBF numa rotina avulsa.
Alguém poderia me auxiliar? mas tinha que ser um exemplo meio completo porque nunca fiz na unha uma rotina assim para criar um arquivo.txt
Grato a todos
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 09:19
por gvc
Código: Selecionar todos
set alternate to arq_nfe
set alternate on
nfe->(dbgotop())
while !nfe->(eof())
?? nfe->campo1
?
nfe->(dbskip())
end
set alternate off
set alternate to
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 09:26
por Altemir
Obrigado GVC.... vou testar!
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 10:36
por Altemir
Olá GVC,
Antes de tudo, mais uma vez gostaria de agradecer.
Mas como não manjo muito bem para fazer na unha,
se fosse possível complementar este exemplo?
mesmo que neste exemplo dado já é o óbvio pra ti, mas pra mim ainda não é.
grato
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 17:08
por gvc
Acho que vc deveria explicar melhor o que esta querendo fazer.
O bloco que foi colocado acima cria o arquivo e manda os dados para o arquivo.
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 20:48
por ANDRIL
Como GVC postou, esta é a maneira detalhada de se criar o arquivo em questão.
Como seu arquivo só tem um unico campo, nem tem sentido tudo isso basta
usar
Crie funcoes quando precisa extrair partes especificas de dentro do texto, ou alterar as ordens dos campos nos relatorios em relacao ao arquivo DBF, ou seja, algo que realmente nao possa ser feito com um comando NATIVO.
Ate+
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 30 Jun 2010 22:09
por Altemir
Prezado GVC,
Voce entendeu exatamente o que eu quero fazer com o seu exemplo.
Eu criei uma rotina avulsa exatamente com seu exemplo, sem tirar nem por
mas parece que não criou o .TXT mas deve ter sido algum erro meu e vou rever
o teste que fiz e tão logo vou responder aqui.
Mais uma vez muito obrigado pela dedicação com que está me ajudando c/esse exemplo.
E também quero agradecer ao Andril pela dica e que também irei testar.
Um grande abraço a todos
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 01 Jul 2010 09:08
por Altemir
Bom dia, GVC e Andril...
No teste do GVC ele chega a criar o arquivo.TXT, mas cria vazio porque dá um erro:
"VARIAVEL/FUNÇÃO: NFE"
"ALIAS INDEFINIDO" --> O ALIAS (arquivo) especificado não está associado a nenhuma área de trabalho ativa!
-----------------------------
No teste do Andril o arquivo.TXT criou, mas termina com um caracter tipo um quadradinho.
se fosse possível saber como ele cria esse arquivo sem esse quadradinho, ficaria beleza.
---------------------------
termino saudando a boa vontade dos amigos GVC e Andril em me ajudar.
dando certo qualquer um desses testes, vou querer abusar mais um pouquinho pra incrementar esse teste na minha rotina avulsa que preciso fazer.
Um abraço a todos
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 01 Jul 2010 09:53
por gvc
Código: Selecionar todos
***
***
***
cls
use nfe
set deleted on
set default to
set printer to c:\nfe.txt
set device to print
_linha := 0
nfe->(dbgotop())
while !nfe->(eof())
@ _linha++,00 say nfe->campo1
nfe->(dbskip())
end
@ _linha++,00 say ''
set device to screen
set printer to
return
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 01 Jul 2010 15:40
por Altemir
Ao GVC!
Simplesmente ficou perfeito!
ESte fórum está de parabéns por ter usuários como o GVC e o Andril
Vou tentar adequar esse exemplo à minha rotina final, que certamente terei alguma dificuldade, mas vou me aproveitar mais uma vez da boa vontade dos amigos.
Um abraço a todos
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 05 Jul 2010 10:04
por Altemir
Bom dia aos amigos do Forum e agradecer principalmente ao GVC e ao Andril
que me auxiliaram c/seus exemplos.
O exemplo final onde gera o TXT sem aquele caracter na ultima linha que o GVC deu ficou
exatamente como eu precisava.
Tentei colocar este exemplo na minha rotina, mas infelizmente não consegui.
Gostaria de saber se eu poderia enviar a minha rotina para os amigos darem uma olhada
e ver se conseguem colocar este exemplo dentro dela? Criei os fontes e o executável bem simplificado
onde explico como eu gostaria que ficasse.
se alguém quiser me dar mais uma ajuda final, eu ficaria muito grato.
meu email:
altemir.costa@ig.com.br
Nota de Moderação:por
[url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: (de acordo a sua ultima citação)
Enviar por email, resolver através de meios privados são práticas não aceitas aqui no fórum. Desestimulamos este tipo de procedimento, já que o objetivo do fórum é para servir como fonte centralizadora de informações, onde os usuários possam compartilhar de forma pública e não exclusiva. Favor ler a
Regra Geral do Fórum (itens 10,11,12 e 13).
Obrigado a todos e a esse forum!
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 05 Jul 2010 11:42
por gvc
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 15 Jul 2010 00:09
por gvc
[altemir]
Achei melhor postar a solução aqui para ajudar outros colegas que possam precisar do exemplo.
Código: Selecionar todos
cls
set delete on
set date british
set epoch to 1920
select 2
use nfe index nfe1 // str(nota, 6) + seq
select 1
use nnfe index nnfe1 // str(nota, 6)
_nf := 0
while .T.
@ 05,05 say 'N.F.' get _nf picture '999999' valid !empty(_nf)
read
if lastkey() = 27
exit
end
x_nf := str(_nf, 6)
if !nnfe->(dbseek(x_nf))
alert('N.F. nao encontrada!!!')
loop
end
if !nfe->(dbseek(x_nf))
alert('Dados da N.F. nao encontrada!!!')
loop
end
setprc(0, 0)
xarq := 'nf' + strzero(_nf, 6) + '.txt'
set printer to (xarq)
set device to print
_linha := 0
@ _linha++,00 say nnfe->nota
while !nfe->(eof()) .and. nfe->nota = _nf
@ _linha++,00 say alltrim(nfe->campo1)
nfe->(dbskip())
end
@ _linha++,00 say ''
set device to screen
set printer to
end
dbcloseall()
return
Espero ter ajudado. Boa sorte.
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 15 Jul 2010 17:31
por Altemir
Valeu GVC, está perfeito.
Quero mais uma vez te agradecer pela dedicação e empenho em ajudar.
Estou testando esta rotina, mas vi que ele está criando na primeira linha o nº da nota, e nesse caso não poderia ter esse nº de nota na 1ª linha.
Caso ainda queira dar mais uma mãozinha ...
Dentro do possível, se desse pra teclar tipo um <F8> e ver quais são as notas do arquivo que faltam gerar o TXT, ai fecharia c/chave de ouro.
Grato e um abraço
Altemir
Re: Rotina exemplo p/Criar arquivo.TXT
Enviado: 15 Jul 2010 22:25
por gvc
Para não imprimir o número da NF vc só precisa apagar a linha 45.
Eu não conheço direito a estrutura do arquivo NNFE, mas se vc puder mudar a estrutura do mesmo para conter um campo para indicar que o arquivo texto correspondente já foi montado, seria a forma de controlar isso.