var SL:TStringList; ..... SL := TStringList.Create; SL.Sorted := true; SL.Duplicates := dupIgnore; SL.AddStrings(Memo3.Lines); Memo3.Clear; Memo3.Lines.AddStrings(SL); SL.Free;
В общем, так: PHP: var ids: TStringList; begin ids := TStringList.Create; ids.Sorted := True; ids.Duplicates := dupIgnore; ids.Add('test'); ids.Add('test'); ids.Add('test'); // несмотря на то что мы 3 раза добавили // одну и ту же строку в list находится только одна // строка 'test' ids.Free; end;
Вот код удаляет дубли с Memo1 Code: var i : integer; begin i := 0; while i < Form1.Memo1.Lines.Count do begin if Form1.Memo1.Lines.IndexOf(Form1.Memo1.Lines[i]) < i then Form1.Memo1.Lines.Delete(i) else inc(i); end; end; Если будет много строк, желательно делать отдельный поток для этого, так как форма будет виснуть.