Показать сообщение отдельно
  #8  
Старый 14.08.2010, 11:46
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 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;
Ответить с цитированием