TStringList no Delphi
O TStringList nada mais é do que uma lista de strings. Cada posição de uma StringList pode estar armazenado "N" caracteres, ou seja, uma string. Utiliza-se muito a StringList para evitar a leitura de um arquivo txt. Pois como a StingList é trabalhada em memória, sua agilidade é "N" vezes maior do que você varrer um txt por inteiro.
Código:
Lista : TStringList;
Como percebemos, a TStringList é uma classe, e toda classe deve ser instanciada. Então, vamos instância a TStringList e inicia nossa variável. Código abaixo.
procedure AdicionaStr ( Str : string );
begin
Lista.Add ( Str );
end;
Eu criei este método, pois não sei onde vocês pretende usar a lista e em que momento será necessário instância-la. Agora, vamos criar um método que adiciona uma string em um índice na nossa StringList. Código abaixo.
procedure TFPrincipal.miCopiarUmaLinhaGridClick(Sender: TObject);
begin
CopiarUmaLinhaGrid(dbgridCDS, miExibirtitulo.Checked);
end;
Agora, vamos criar um método que irá retornar o índice na StringList onde se encontra uma determinada string. Caso não encontre, ele retorna - 1.
function RetornaIndice ( str : string ) : integer;
begin
Result := Lista.IndexOf ( str );
end;
Como carregar em um StringList, um arquivo texto. Irá jogar em cada índice da StringList uma linha daquele txt. Isto facilita muito o nosso trabalho. Código abaixo.
Lista.LoadFromFile ( 'C:\Teste.txt' );
Após toda manipulação, é preciso salvar tudo que alteramos no txt novamente, correto ? Então... Código abaixo.
Lista.SaveToFile ( 'C:\Teste.txt' );
Agora vou mostrá-los como varremos um StringList. Código abaixo.
for indice := 0 to Lista.Count - 1 do
ShowMessage ( Lista.Strings [ indice ] );
Por fim, finalizamos destruindo nossa stringList após termos feito o que tinha que se fazer. Código abaixo.
Lista.Free;
Lista := nil;
Interessante.
ResponderExcluirComo eu faço para deletar o conteúdo de uma célula da Lista E como faço para Alterar o conteúdo de uma célula da Lista?
Tenta algo assim:
ExcluirLista := TStringList.Create;
try
Lista.LoadFromFile('C:\Teste.txt');
Lista.Delete(23); {23 e o exemplo da linha que deseja excluir}
Lista.SaveToFile('C:\Teste.txt');
finally
Lista.Free;
end;