
14.08.2010, 11:46
|
 |
Начинающий
|
|
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
|
|
Код:
procedure RemoveDuplicates(const StringList: TStringList);
var
buffer: TStringList;
cnt: Integer;
begin
StringList.Sort;
buffer := TStringList.Create;
try
buffer.Sorted := True;
buffer.Duplicates := dupIgnore;
buffer.BeginUpdate;
for cnt := 0 to StringList.Count - 1 do
buffer.Add(StringList[cnt]);
buffer.EndUpdate;
StringList.Assign(buffer);
Application.ProcessMessages;
finally
FreeandNil(buffer);
end;
end;
применять так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Data: TStringList;
begin
Data := TStringList.Create;
Data.Text := Memo1.Text; // в мемо1 хранятся данные с повторами
RemoveDuplicates(Data); // "сито" данных :)
memo2.Text := Data.Text; // в мемо2 данные пройденные через "сито"
Data.Free;
end;
|