Ler TXT e separar dados em uma linha

27/03/2019

0

Preciso ler um txt com várias linhas e cada tinha há 4 números separados por espaços. Preciso atribuir cada número a uma variável diferente. Minha dúvida é como ler estes números separados, ja que com a função COPY é necessário ter as posições sempre iguais, que não é o caso. Agradeço a ajuda.
Lucas Tieni

Lucas Tieni

Responder

Posts

27/03/2019

Hélio Devmedia

Olá Lucas, tudo bem?

Eu faço assim:

var
  arquivo, numeros: TStringList;

  v1, v2, v3, v4: double;
  I: Integer;
begin
  arquivo:= TStringList.Create;
  arquivo.LoadFromFile('k:\\teste.txt');


  numeros:=TStringList.Create;
  numeros.StrictDelimiter:=false;
  numeros.Delimiter:=' ';

  for I := 0 to arquivo.Count-1 do
  begin
    numeros.DelimitedText:=arquivo.Strings[i];
    v1:=numeros.Strings[0].ToDouble();
    v2:=numeros.Strings[1].ToDouble();
    v3:=numeros.Strings[2].ToDouble();
    v4:=numeros.Strings[3].ToDouble();
  end;

end;


Só explicando, eu abro o txt em um TStringList, e depois eu crio um segundo TStringList só que com delimitação por espaços, e jogo cada linha do primeiro stringList na propriedade DelimitedText que faz com que o texto seja quebrado em linhas separadas...

A partir daqui eu posso pegar cada linha da segunda stringList e jogar o valor nas variáveis que você mencionou.

Ficaria muito mais interessante se este código fosse encapsulado em um objeto e cada variável ser uma propriedade deste objeto, mas aí é decisão sua.


Espero ter ajudado. Um forte abraço e fique com Deus
Responder

09/05/2019

Lucas Tieni

Olá Hélico, Agradeço muito pela ajuda!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar