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

(Resolvido) Arquivo Retorno Descontinuado


Alberto Mota

Pergunta

Eu já sabia que fazer tratamento ao arquivo retorno seria trabalhoso,

e mais agora que recebi esse arquivo da Caixa.

Para o meu sistema só me interessa o Segmento T, por isso só preciso dessa faixa.

O exemplo abaixo é um resumo:

10400011T01 030 2009398459000160198008

1040001300001T 0600222400300000263380D0

1040001300002U 060000000000000000000000

10400015 0000020000000000000000

10499999 000001000006000000000

Gostaria de apenas capturar a faixa da segunda linha, onde o 14º digito o identifica.

se na 14ª posição não for T, não lê o arquivo.

Agradeço de antemão a ajuda.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
O exemplo abaixo é um resumo:

10400011T01 030 2009398459000160198008

1040001300001T 0600222400300000263380D0

1040001300002U 060000000000000000000000

10400015 0000020000000000000000

10499999 000001000006000000000

Gostaria de apenas capturar a faixa da segunda linha, onde o 14º digito o identifica.

se na 14ª posição não for T, não lê o arquivo.

Alberto Mota ... isso é muito simples

Se esse resumo estiver dentro de um memo, ficaria assim:

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;  linha : string;
begin
   for i := 0 to Memo1.Lines.Count do
      begin
         linha := Memo1.Lines.Strings[i];
         if pos('T',linha) = 14 then
            showmessage(linha);

      end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas, o arquivo está num arquivo texto, na verdade um arquivo .ret

o que resulta no mesmo. Como seria nesse arquivo?

Mais uma vez, obrigado.

ficaria dessa maneira:

procedure TForm1.Button1Click(Sender: TObject);
var   Arquivo : Textfile; Linha : string;
begin
   AssignFile(Arquivo, 'C:\Retorno.ret');
   Reset(Arquivo);
   while not EOF(Arquivo) do
      begin
        ReadLn(Arquivo, Linha);
        if pos('T',linha) = 14 then
           showmessage(linha);
      end;
   CloseFile(Arquivo);
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Para quem precisar, o código abaixo, graças ao Jhonas,

Lê um arquivo texto e adiciona na tabela com a condição

de apenas os que estiverem na 14ª posição.

var

fArq: TextFile;

Caminho: string;

Linha: string;

mTexto: TStringList;

i: integer;

valor1, valor2 : string;

somatotal : Real;

somatotal2 : String;

dat :string;

data :TDate;

Valor : real;

numero : integer;

begin

AdoQuery1.open;

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);

if pos('T',linha) = 14 then

Begin

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

insert('/',dat,3);

insert('/',dat,6);

data := strtodate(dat);

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

numero := strtoint(copy(linha,4,10));

AdoQuery1.ExecSQL;

AdoQuery1.Append;

Adoquery1.edit;

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

ADOQuery1.FieldbyName('numerodoc').Value := numero;

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

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

ADOQuery1.Post;

AdoQuery1.ExecSQL;

Inc(i);

pb.Position := pb.Position + 1;

Application.ProcessMessages;

Next;

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...