TransWikia.com

Удаление строк в TStringList

Stack Overflow на русском Asked on November 30, 2021

При удалении всех строк где есть слово "Del" сообщение об ошибке: List index out of bounds (2)

var
  L, K: TStringList;
  i: integer;
begin
  L := TStringList.Create;
  L.LoadFromFile(ExtractFilePath(Application.ExeName) + 'f.txt');
  for i := 0 to L.Count - 1 do
  begin
    if pos('Del', L.Strings[i]) > 0 then
      L.delete(i);
    L.SaveToFile(ExtractFilePath(Application.ExeName) + 'f.txt');
  end;
  L.Free;
end;

One Answer

Вы "рубите сук, на котором сидите" или "выдергиваете коврик у себя из-под ног".

for i := L.Count - 1 downto 0 do

И вынесите L.SaveToFile из цикла.

Answered by Igor on November 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP