 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
amunizbrr Novato

Registrado: Terça-Feira, 26 de Mai de 2015 Mensagens: 7
|
Enviada: Ter Mai 26, 2015 6:49 pm Assunto: Criar arquivo txt numa posição definida |
|
|
Ola experts,
Estou tentando criar um arquivo txt com nas seguintes posições mas estou com dificuldade
--HEADER---
LINHA1
1-2:00(FIXO)
3-9:REMESSA(FIXO)
10-17:DDMMAAA
18-25:NUMEROSEQUENCIAL
26-30:001(FIXO)
--TRAILER--
LINHA2
1-2:99
3-8:QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:EM BRANCO
325-340:NUMEROSEQUENCIAL(MESMO DO HEADER)
--CONSUMIDOR--
1-2:00(FIXO)
3-18:CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
---------------
O nome do arquivo obrigatório ser: REG_AAAAMMDD_HHMI.TXT
Alguma dica?
Obg
Anderson |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Ter Mai 26, 2015 11:08 pm Assunto: Re: Criar arquivo txt numa posição definida |
|
|
| amunizbrr escreveu: | Ola experts,
Estou tentando criar um arquivo txt com nas seguintes posições mas estou com dificuldade
--HEADER---
LINHA1
1-2:00(FIXO)
3-9:REMESSA(FIXO)
10-17:DDMMAAA
18-25:NUMEROSEQUENCIAL
26-30:001(FIXO)
--TRAILER--
LINHA2
1-2:99
3-8:QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:EM BRANCO
325-340:NUMEROSEQUENCIAL(MESMO DO HEADER)
--CONSUMIDOR--
1-2:00(FIXO)
3-18:CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
---------------
O nome do arquivo obrigatório ser: REG_AAAAMMDD_HHMI.TXT
Alguma dica?
Obg
Anderson |
use a função formatfloat para os numeros e AddEspaco para texto
--HEADER---
LINHA1
1-2:fomatfloat('00',valor1); -> 00(FIXO)
3-9:fomatfloat('000000000',valor2); -> REMESSA(FIXO)
10-17:fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA); -> DDMMAAAA
18-25:fomatfloat('00000000',valor3); -> NUMEROSEQUENCIAL
26-30:fomatfloat('00000',valor4); -> 001(FIXO)
ficando
| Código: | HEADER:=fomatfloat('00',valor1)+fomatfloat('000000000',valor2)+fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA)+fomatfloat('00000000',valor3)+fomatfloat('00000',valor4);
|
--TRAILER--
LINHA2
1-2:fomatfloat('00',valor5); -> 99
3-8:fomatfloat('000000',valor6); -> QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:AddEspaco(txt1,316); -> EM BRANCO
325-340:AddEspaco(txt2,26); -> NUMEROSEQUENCIAL(MESMO DO HEADER)
ficando
| Código: | | TRAILER:=fomatfloat('00',valor5)+fomatfloat('000000',valor6)+AddEspaco(txt1,315)+AddEspaco(txt1,25); |
--CONSUMIDOR--
1-2:fomatfloat('00',valor7); -> 00(FIXO)
3-18:AddEspaco(txt3,16); -> CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
ficando
| Código: | | CONSUMIDOR:=fomatfloat('00',valor7)+AddEspaco(txt3,16); |
assim todo o codigo fica
| Código: |
function AddEspaco(txt:string;lim:integer):string;
begin
if length(txt)<lim then
while length(txt)<lim do
begin
txt:=txt+' ';
end else
if length(txt)>lim then
txt:=copy(txt,1,lim);
result:=txt;
end;
...
procedure Tform1.Button1click(sender:tobject);
var
FileText:tstrings;
HEADER,TRAILER,CONSUMIDOR:string;
begin
HEADER:=fomatfloat('00',valor1)+fomatfloat('000000000',valor2)+fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA)+fomatfloat('00000000',valor3)+fomatfloat('00000',valor4);
TRAILER:=fomatfloat('00',valor5)+fomatfloat('000000',valor6)+AddEspaco(txt1,315)+AddEspaco(txt1,25);
CONSUMIDOR:=fomatfloat('00',valor7)+AddEspaco(txt3,16);
FileText:=Tstringlist.create;
FileText.add(HEADER);
FileText.add(TRAILER);
FileText.add(CONSUMIDOR);
FileText.salvetofile('REG_'+formatdate('YYYYMMDD_',date)+formatdate('HHNN',time)+'.txt');
end; |
_________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
amunizbrr Novato

Registrado: Terça-Feira, 26 de Mai de 2015 Mensagens: 7
|
Enviada: Qua Mai 27, 2015 1:09 pm Assunto: Re: Criar arquivo txt numa posição definida |
|
|
| strak2012 escreveu: | | amunizbrr escreveu: | Ola experts,
Estou tentando criar um arquivo txt com nas seguintes posições mas estou com dificuldade
--HEADER---
LINHA1
1-2:00(FIXO)
3-9:REMESSA(FIXO)
10-17:DDMMAAA
18-25:NUMEROSEQUENCIAL
26-30:001(FIXO)
--TRAILER--
LINHA2
1-2:99
3-8:QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:EM BRANCO
325-340:NUMEROSEQUENCIAL(MESMO DO HEADER)
--CONSUMIDOR--
1-2:00(FIXO)
3-18:CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
---------------
O nome do arquivo obrigatório ser: REG_AAAAMMDD_HHMI.TXT
Alguma dica?
Obg
Anderson |
use a função formatfloat para os numeros e AddEspaco para texto
--HEADER---
LINHA1
1-2:fomatfloat('00',valor1); -> 00(FIXO)
3-9:fomatfloat('000000000',valor2); -> REMESSA(FIXO)
10-17:fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA); -> DDMMAAAA
18-25:fomatfloat('00000000',valor3); -> NUMEROSEQUENCIAL
26-30:fomatfloat('00000',valor4); -> 001(FIXO)
ficando
| Código: | HEADER:=fomatfloat('00',valor1)+fomatfloat('000000000',valor2)+fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA)+fomatfloat('00000000',valor3)+fomatfloat('00000',valor4);
|
--TRAILER--
LINHA2
1-2:fomatfloat('00',valor5); -> 99
3-8:fomatfloat('000000',valor6); -> QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:AddEspaco(txt1,316); -> EM BRANCO
325-340:AddEspaco(txt2,26); -> NUMEROSEQUENCIAL(MESMO DO HEADER)
ficando
| Código: | | TRAILER:=fomatfloat('00',valor5)+fomatfloat('000000',valor6)+AddEspaco(txt1,315)+AddEspaco(txt1,25); |
--CONSUMIDOR--
1-2:fomatfloat('00',valor7); -> 00(FIXO)
3-18:AddEspaco(txt3,16); -> CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
ficando
| Código: | | CONSUMIDOR:=fomatfloat('00',valor7)+AddEspaco(txt3,16); |
assim todo o codigo fica
| Código: |
function AddEspaco(txt:string;lim:integer):string;
begin
if length(txt)<lim then
while length(txt)<lim>lim then
txt:=copy(txt,1,lim);
result:=txt;
end;
...
procedure Tform1.Button1click(sender:tobject);
var
FileText:tstrings;
HEADER,TRAILER,CONSUMIDOR:string;
begin
HEADER:=fomatfloat('00',valor1)+fomatfloat('000000000',valor2)+fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA)+fomatfloat('00000000',valor3)+fomatfloat('00000',valor4);
TRAILER:=fomatfloat('00',valor5)+fomatfloat('000000',valor6)+AddEspaco(txt1,315)+AddEspaco(txt1,25);
CONSUMIDOR:=fomatfloat('00',valor7)+AddEspaco(txt3,16);
FileText:=Tstringlist.create;
FileText.add(HEADER);
FileText.add(TRAILER);
FileText.add(CONSUMIDOR);
FileText.salvetofile('REG_'+formatdate('YYYYMMDD_',date)+formatdate('HHNN',time)+'.txt');
end; |
|
Olá,
fiz um pequeno ajuste do código e coloquei na aplicação porém quando tendo rodar me apresenta 1 erro:
1.) [dcc32 Error] Unit3.pas(51): E2250 There is no overloaded version of 'FormatFloat' that can be called with these arguments
Obrigado pela ajuda
Anderson |
|
| Voltar ao Topo |
|
 |
amunizbrr Novato

Registrado: Terça-Feira, 26 de Mai de 2015 Mensagens: 7
|
Enviada: Qua Mai 27, 2015 1:59 pm Assunto: Re: Criar arquivo txt numa posição definida |
|
|
| amunizbrr escreveu: | | strak2012 escreveu: | | amunizbrr escreveu: | Ola experts,
Estou tentando criar um arquivo txt com nas seguintes posições mas estou com dificuldade
--HEADER---
LINHA1
1-2:00(FIXO)
3-9:REMESSA(FIXO)
10-17:DDMMAAA
18-25:NUMEROSEQUENCIAL
26-30:001(FIXO)
--TRAILER--
LINHA2
1-2:99
3-8:QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:EM BRANCO
325-340:NUMEROSEQUENCIAL(MESMO DO HEADER)
--CONSUMIDOR--
1-2:00(FIXO)
3-18:CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
---------------
O nome do arquivo obrigatório ser: REG_AAAAMMDD_HHMI.TXT
Alguma dica?
Obg
Anderson |
use a função formatfloat para os numeros e AddEspaco para texto
--HEADER---
LINHA1
1-2:fomatfloat('00',valor1); -> 00(FIXO)
3-9:fomatfloat('000000000',valor2); -> REMESSA(FIXO)
10-17:fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA); -> DDMMAAAA
18-25:fomatfloat('00000000',valor3); -> NUMEROSEQUENCIAL
26-30:fomatfloat('00000',valor4); -> 001(FIXO)
ficando
| Código: | HEADER:=fomatfloat('00',valor1)+fomatfloat('000000000',valor2)+fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA)+fomatfloat('00000000',valor3)+fomatfloat('00000',valor4);
|
--TRAILER--
LINHA2
1-2:fomatfloat('00',valor5); -> 99
3-8:fomatfloat('000000',valor6); -> QTDREGISTROS(QUERY DO BANCO DE DADOS)
9-324:AddEspaco(txt1,316); -> EM BRANCO
325-340:AddEspaco(txt2,26); -> NUMEROSEQUENCIAL(MESMO DO HEADER)
ficando
| Código: | | TRAILER:=fomatfloat('00',valor5)+fomatfloat('000000',valor6)+AddEspaco(txt1,315)+AddEspaco(txt1,25); |
--CONSUMIDOR--
1-2:fomatfloat('00',valor7); -> 00(FIXO)
3-18:AddEspaco(txt3,16); -> CPFCNPJ(QUERY PARA TRAZER CPF OU CNPJ)
ficando
| Código: | | CONSUMIDOR:=fomatfloat('00',valor7)+AddEspaco(txt3,16); |
assim todo o codigo fica
| Código: |
function AddEspaco(txt:string;lim:integer):string;
begin
if length(txt)<lim then
while length(txt)<lim>lim then
txt:=copy(txt,1,lim);
result:=txt;
end;
...
procedure Tform1.Button1click(sender:tobject);
var
FileText:tstrings;
HEADER,TRAILER,CONSUMIDOR:string;
begin
HEADER:=fomatfloat('00',valor1)+fomatfloat('000000000',valor2)+fomatfloat('00',DD)+fomatfloat('00',MM)+fomatfloat('0000',AAAA)+fomatfloat('00000000',valor3)+fomatfloat('00000',valor4);
TRAILER:=fomatfloat('00',valor5)+fomatfloat('000000',valor6)+AddEspaco(txt1,315)+AddEspaco(txt1,25);
CONSUMIDOR:=fomatfloat('00',valor7)+AddEspaco(txt3,16);
FileText:=Tstringlist.create;
FileText.add(HEADER);
FileText.add(TRAILER);
FileText.add(CONSUMIDOR);
FileText.salvetofile('REG_'+formatdate('YYYYMMDD_',date)+formatdate('HHNN',time)+'.txt');
end; |
|
Olá,
fiz um pequeno ajuste do código e coloquei na aplicação porém quando tendo rodar me apresenta 1 erro:
1.) [dcc32 Error] Unit3.pas(51): E2250 There is no overloaded version of 'FormatFloat' that can be called with these arguments
Obrigado pela ajuda
Anderson |
Olá,
Fiz um ajuste novamente e consegui corrigir o erro. Vou parametrizar todo arquivo e testar.
Depois apresento o resultado.
Obrigado pela ajuda.
Anderson |
|
| Voltar ao Topo |
|
 |
amunizbrr Novato

Registrado: Terça-Feira, 26 de Mai de 2015 Mensagens: 7
|
Enviada: Qua Mai 27, 2015 3:21 pm Assunto: Re: Criar arquivo txt numa posição definida |
|
|
Olá experts,
Estou conseguindo gerar arquivo mas preciso fazer alguns ajustes que não estou conseguindo
tem um campo
UnidadeNegocio posicao 318-322 tamanho 5. Valor Fixo SPC
Eu tentei formatfloat('%5s',[SPC]) mas não funcionou. Preenche o campo porém tamanho 3.
Como faço ?
Obrigado
Anderson |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Qua Mai 27, 2015 3:32 pm Assunto: Re: Criar arquivo txt numa posição definida |
|
|
| amunizbrr escreveu: | Olá experts,
Estou conseguindo gerar arquivo mas preciso fazer alguns ajustes que não estou conseguindo
tem um campo
UnidadeNegocio posicao 318-322 tamanho 5. Valor Fixo SPC
Eu tentei formatfloat('%5s',[SPC]) mas não funcionou. Preenche o campo porém tamanho 3.
Como faço ?
Obrigado
Anderson |
| Código: | function AddEspaco(txt:string;lim:integer):string;
begin
if length(txt)<lim then
while length(txt)<lim do
begin
txt:=txt+' ';
end;
if length(txt)>lim then
txt:=copy(txt,1,lim);
result:=txt;
end;
|
em vez de
formatfloat('%5s',[SPC]);
use
AddEspaco(SPC,5); _________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
amunizbrr Novato

Registrado: Terça-Feira, 26 de Mai de 2015 Mensagens: 7
|
Enviada: Qui Mai 28, 2015 10:44 am Assunto: Re: Criar arquivo txt numa posição definida |
|
|
| strak2012 escreveu: | | amunizbrr escreveu: | Olá experts,
Estou conseguindo gerar arquivo mas preciso fazer alguns ajustes que não estou conseguindo
tem um campo
UnidadeNegocio posicao 318-322 tamanho 5. Valor Fixo SPC
Eu tentei formatfloat('%5s',[SPC]) mas não funcionou. Preenche o campo porém tamanho 3.
Como faço ?
Obrigado
Anderson |
| Código: | function AddEspaco(txt:string;lim:integer):string;
begin
if length(txt)<lim then
while length(txt)<lim>lim then
txt:=copy(txt,1,lim);
result:=txt;
end;
|
em vez de
formatfloat('%5s',[SPC]);
use
AddEspaco(SPC,5); |
Ola Expert,
Funcionou.
Obrigado
Anderson |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|