12th
Авг

Как в Memo найти и удалить повторяющиеся строки?

Posted by Chas under Пост-обзор

Serge_Bliznykov:

procedure TForm1.Button1Click(Sender: TObject);
var i, j : integer;
begin
   i := Memo1.Lines.Count-1;
   while i>=0 do begin
     //присваиваем переменной j номер найденной строки (ищем строчку с индексом i
     j := Memo1.Lines.IndexOf(Memo1.Lines);
     // пока строчка нашлась и эта строчка не является текущей (т.к. сама себя она найдётся всегда) и пока строчки не кончились
     //удаляем строчку и ищем следующую, пока условия выполняются
     while (j>=0) and (j<i) and (i>=0) do begin //пока индексов и количества строк больше нуля
       Dec(i);
       Memo1.Lines.Delete(j); //удаляем индекс
       if i>=0 then
         j := Memo1.Lines.IndexOf(Memo1.Lines);
     end;
     Dec(i);
   end;
end;

тема на форуме

Похожие статьи

Теги: |