Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tratamento de Arquivo Retorno


Alberto Mota

Pergunta

Prezados colegas,

ao receber um arquivo retorno não estou conseguindo fazer o devido tratamento

Na linha abaixo:

104000000000115012010000010085

A posição de 13 a 21 é data e de 22 a 30 é o valor

Sendo que o valor ele entende como 10085,00. E não como 100,85

Como fazer esse tratamento para as casas decimais?

E também para as datas?

Mais uma vez agradeço de antemão.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
ao receber um arquivo retorno não estou conseguindo fazer o devido tratamento

Na linha abaixo:

104000000000115012010000010085

A posição de 13 a 21 é data e de 22 a 30 é o valor

Sendo que o valor ele entende como 10085,00. E não como 100,85

Como fazer esse tratamento para as casas decimais?

E também para as datas?

Exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var linha, dat : string; data :TDate; Valor : real;
begin
   linha := '104000000000115012010000010085';

   dat := copy(linha,14,8);
   insert('/',dat,3);
   insert('/',dat,6);
   data := strtodate(dat);
   valor := (strtofloat(copy(linha,22,9))/100);

   Edit1.Text := datetostr(data);
   Edit2.Text := floattostr(valor);
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, mais uma vez, obrigado.

Até no Natal voce se prontifica em ajudar.

Muito sucesso à você, pois merece.

Adaptei o seu código e era de fato o que precisava.

Segue abaixo o código completo para quem precise um dia.

Um abraço.

procedure TFrmArquivoRetorno.BitBtn1Click(Sender: TObject);

var

fArq: TextFile;

Caminho: string;

Linha: string;

mTexto: TStringList;

i: integer;

valor1, valor2 : string;

somatotal : Real;

somatotal2 : String;

dat :string;

data :TDate;

Valor : real;

begin

if Edit1.Text = '' then

Begin

statusbar1.Panels[0].Text := ' Selecione o arquivo retorno!';

BitBtn4.setfocus;

exit;

End;

Caminho := Edit1.Text;

AssignFile(fArq, Caminho);

ReSet(fArq);

mTexto := TStringList.Create;

try

mTexto.LoadFromFile(Caminho);

pb.Max := mTexto.Count - 1;

i := 0;

finally

mTexto.Free;

end;

while not Eof(fArq) do

begin

Readln(farq, linha);

Caption := 'Lendo Linha: ' + IntToStr(i) + ' de: ' + IntToStr(pb.Max);

dat := copy(linha,14,8);

insert('/',dat,3);

insert('/',dat,6);

data := strtodate(dat);

valor := (strtofloat(copy(linha,22,10))/100);

AdoQuery1.Open;

AdoQuery1.Append;

Adoquery1.edit;

ADOQuery1.FieldbyName('banco').Value := Trim(Copy(Linha, 1, 3));

ADOQuery1.FieldbyName('numero').Value := Trim(Copy(Linha, 4, 13));

ADOQuery1.FieldbyName('dt').Value := datetostr(data);

ADOQuery1.FieldbyName('vr').Value := valor;

ADOQuery1.Post;

Inc(i);

pb.Position := pb.Position + 1;

Application.ProcessMessages;

Next;

AdoQuery1.close;

AdoQuery1.Open;

pb.Visible := false;

Label1.Caption := 'Total de registros importados: '+ IntToStr(AdoQuery1.Recordcount);

soma

End;

End;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...