Meu While não le a última linha do arquivo texto
Ele realiza o insert apenas até a linha 5 sendo que o arquivo possui 6 linhas.
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
Curtidas 0
Melhor post
Daniel Araújo
01/04/2017
Bom dia Rodrigo!
Se excluir o primeiro ReadLn (o que está fora do laço) e colocar o último ReadLn (o do final do laço) no início do while não dá certo?
Daniel Araújo
Sombra Tecnologia
Consultoria e Desenvolvimento de Sistemas
sombra.tecnologia@gmail.com
55 85 98135-5516
Se excluir o primeiro ReadLn (o que está fora do laço) e colocar o último ReadLn (o do final do laço) no início do while não dá certo?
Daniel Araújo
Sombra Tecnologia
Consultoria e Desenvolvimento de Sistemas
sombra.tecnologia@gmail.com
55 85 98135-5516
GOSTEI 1
Mais Respostas
Raylan Zibel
31/03/2017
Segue:
Reset(Arq);
//ReadLn(Arq, Linha);
while not eof(Arq) do
begin
ReadLn(Arq, Linha);
try
Str.StrictDelimiter := true;
Str.Delimiter := '@';
Str.DelimitedText := Linha;
Memo1.Lines.Add(Str[0] + ' | ' + Str[1]);
except
ShowMessage('Erro ao importar arquivo.');
Abort;
end;
//Readln(Arq, Linha);
end;
GOSTEI 1
Rodrigo Oliveira
31/03/2017
Obrigado Daniel era isso mesmo problema resovido !
GOSTEI 0