Fórum Meu While está lendo apenas a primeira linha do meu arquivo txt ! #579584
31/03/2017
0
Meu while lê apenas a primeira linha do arquivo onde eu posso estar errando ?
procedure TForm1.Button1Click(Sender: TObject);
Var
Arq : TextFile;
Arqorigem, Linha : String;
Str : TStringList;
Dia : string;
begin
AssignFile(Arq,Edit1.Text);
str := TStringList.Create;
Reset(Arq);
ReadLn(Arq, Linha);
while not eof(Arq) do
Begin
try
str.StrictDelimiter := true;
str.Delimiter := '@';
str.DelimitedText := Linha;
DsInsere.DataSet.Open;
DsInsere.DataSet.Insert;
qInsere.FieldByName('UF').Value := Trim(Str[0]);
qInsere.FieldByName('LOCA_').Value := Str[4];
qInsere.FieldByName('CEP8').Value := Str[6];
qInsere.FieldByName('NOME').Value := Str[8];
qInsere.FieldByName('BAIINI').Value := Str[10];
qInsere.FieldByName('TIPO').Value := Str[12];
DsInsere.DataSet.Post;
except
ShowMessage('Erro ao importar arquivo.');
Abort;
end;
Readln(Arq, Linha);
end;
CloseFile(Arq);
ShowMessage('Arquivo importado com sucesso.');
end;
Rodrigo Oliveira
Curtir tópico
+ 0
Responder
Post mais votado
06/04/2017
Opa Rodrigo, tudo bem?
Eu fiz uma pequena adaptação aqui no seu código para testar o exemplo, mudei pouca coisa. Pelo que pude testar, o código está certinho. Será que o seu arquivo não está com apenas uma linha?
Eu fiz uma pequena adaptação aqui no seu código para testar o exemplo, mudei pouca coisa. Pelo que pude testar, o código está certinho. Será que o seu arquivo não está com apenas uma linha?
procedure TForm1.Button1Click(Sender: TObject);
Var
Arq : TextFile;
Arqorigem, Linha : String;
Str : TStringList;
Dia : string;
begin
AssignFile(Arq,'d:\\chamado_forum.txt');
str := TStringList.Create;
Reset(Arq);
ReadLn(Arq, Linha);
str.StrictDelimiter := true;
str.Delimiter := '@';
while not eof(Arq) do
Begin
try
str.DelimitedText := Linha;
memo1.Lines.Add(Str[0] + Str[1] + Str[2] + Str[3]);
except
ShowMessage('Erro ao importar arquivo.');
Abort;
end;
Readln(Arq, Linha);
end;
CloseFile(Arq);
ShowMessage('Arquivo importado com sucesso.');
end;
Wesley Yamazack
Responder
Gostei + 1
Mais Posts
04/04/2017
Roberto Wutke
ele não está entrando no exception não?, a princípio parece estar correto, mas eu colocaria o try fora do while.. ficaria
Try
while
||
readln
end.
exception
end;
algo assim... seria melhor ter um try pra todo o while do que ter que fazer o try toda vez...
Try
while
||
readln
end.
exception
end;
algo assim... seria melhor ter um try pra todo o while do que ter que fazer o try toda vez...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)