Bom dia, amigos! :xau
Preciso exportar para arquivo texto dados como os abaixo:
PEDIDO CLIENTE VALOR FATURAS
33 010 1333,31 30/45/60
45 577 5743,20 30/45/60/75
(...)
Só que são muitos registros. Ouvi dizer que se eu criar o arquivo, abrir, escrever e fechar em baixo nível essa operação é bastante rápida. Como faço isso? (#-)
Como criar, abrir, escrever e fechar txt em baixo nível?
Moderador: Moderadores
-
labaroazul
- Usuário Nível 2

- Mensagens: 83
- Registrado em: 26 Fev 2008 14:52
- Localização: São Paulo - SP
- Contato:
Como criar, abrir, escrever e fechar txt em baixo nível?
Windows XP Professional + Clipper 5.2e + Exospace + Dbase III Plus + SIX3 + NoDosImp + LXPic
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
Re: Como criar, abrir, escrever e fechar txt em baixo nível?
Ola, veja se te ajuda.
Ate+,
Código: Selecionar todos
*-cria e abre o arq vazio
tnovo="NOVOARQ.TXT"
hand2=fcreate("&tnovo",0)
*- aqui grava o cabecalho
fwrite(hand2,"PEDIDO CLIENTE VALOR FATURAS"+chr(13)+chr(10))
n=1
*- aqui coloquei ate 10, se for registros use !eof()
do while n<=10
*--aqui vc coloca os dados dos registros
fwrite(hand2," ped"+padl(n,2,"0")+" cli"+padl(n,2,"0")+;
" val"+padl(n,2,"0")+" Fat"+padl(n,2,"0")+chr(13)+chr(10))
n++
enddo
*- aqui fecha o arquivo criado, nao se esqueca desta linha
fclose(hand2)
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Re: Como criar, abrir, escrever e fechar txt em baixo nível?
1. Esse arquivo texto tem que ter esse padrão com espaços entre os campos. Você poderia nos dizer o por quê ?
2. Você menciona que são muitos os registros para fazer de forma convencional. Pergunto: quantos registros são aos que você se refere.
3. Fazer do modo convencional, é a forma mais rápida que existe, mas claro os dados não são separados por espaços. Daí então é questão de usar o COPY TO .... SDF
4. Na verdade você quer aprender a usar as funções de baixo nível. Sugiro você obter algum livro sobre tais funções, pesquisar na internet (aqui no fórum tem vários exemplos), tentar fazer um programinha simples utilizando-se do NG (Norton Guide) para ver a sintase de cada função. Comece com FOPEN, FCLOSE, FCREATE, FERROR, FREAD, FWRITE.
2. Você menciona que são muitos os registros para fazer de forma convencional. Pergunto: quantos registros são aos que você se refere.
3. Fazer do modo convencional, é a forma mais rápida que existe, mas claro os dados não são separados por espaços. Daí então é questão de usar o COPY TO .... SDF
4. Na verdade você quer aprender a usar as funções de baixo nível. Sugiro você obter algum livro sobre tais funções, pesquisar na internet (aqui no fórum tem vários exemplos), tentar fazer um programinha simples utilizando-se do NG (Norton Guide) para ver a sintase de cada função. Comece com FOPEN, FCLOSE, FCREATE, FERROR, FREAD, FWRITE.
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.
-
labaroazul
- Usuário Nível 2

- Mensagens: 83
- Registrado em: 26 Fev 2008 14:52
- Localização: São Paulo - SP
- Contato:
Re: Como criar, abrir, escrever e fechar txt em baixo nível?
1 - Este arquivo tem de ter espaços entre os valores porque, assim, os campos ficam "no jeito" para serem importados por outro computador onde já tem um programa para importação seguindo esse layout, Pablo César. Mas não se preocupe: ao passar cada registro, completarei os campos com espaços em branco no esquema REPLICATE(" ",<NUMERO>). Creio que vai dar certo.
2 - Atualmente são 51.280 registros e isso pode aumentar consideravelmente no mês que vem, pois é prudente passar todos os registros já existentes mais os novos.
3 - O programa de importação já usa um comando parecido. Se não me engano é o Copy from ... SDF. Acho que sei mais ou menos como funciona.
4 - Com mais calma, depois, vou "escarafunchar" o NG.
Valeu, gente! :{
Ah! Gostei dessa figurinha cabeluda! (#-) :-Y
2 - Atualmente são 51.280 registros e isso pode aumentar consideravelmente no mês que vem, pois é prudente passar todos os registros já existentes mais os novos.
3 - O programa de importação já usa um comando parecido. Se não me engano é o Copy from ... SDF. Acho que sei mais ou menos como funciona.
4 - Com mais calma, depois, vou "escarafunchar" o NG.
Valeu, gente! :{
Ah! Gostei dessa figurinha cabeluda! (#-) :-Y
Windows XP Professional + Clipper 5.2e + Exospace + Dbase III Plus + SIX3 + NoDosImp + LXPic
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
