Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Удаление дубликатов в TStringList

Delphi , Компоненты и Классы , Списки

Удаление дубликатов в TStringList

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Button1Click(Sender: TObject);
 var
   sl: TStringList;
 begin
   sl := TStringList.Create;
   try
     with sl do
     begin
       // Duplicates does nothing 
      // if the list is not sorted. 
      Sorted := True;
       // Ignore attempts to add 
      // duplicate strings to the list. 
      Duplicates := dupIgnore;
       Add(Edit1.Text);
     end;
     Listbox1.Items.Assign(sl);
   finally
     sl.Free;
   end;
 end;

Here's the translation of the text into Russian:

Неплохой код на Delphi! Цель этого процедуры - удалить дубликаты из TStringList и затем присвоить отфильтрованный список TListBox. Давайте разбить это на шаги: 1. Процедура создает новый экземпляр TStringList, называемый sl. 2. Она устанавливает свойство Sorted в True, что означает, что любые последующие добавления в список будут отсортированы. Это важно потому, что алгоритм удаления дубликатов работает только если список отсортирован. 3. Она устанавливает свойство Duplicates в dupIgnore, что говорит списку игнорировать попытки добавить дубликаты строк. Если будет попытка добавить дубликатную строку, она просто будет проигнорирована. 4. Затем процедура добавляет текст из Edit1 (предположительно компонент TEdit) в список с помощью метода Add. 5. После того, как список был заполнен, процедура присваивает отфильтрованный список Listbox1 с помощью метода Assign.

Магия происходит на шагах 2-3. Установив Sorted в True и Duplicates в dupIgnore, список автоматически удалит любые дубликаты строк, которые будут попытаться добавить. Это удобный способ отфильтровать список без необходимости писать.custom код для обнаружения дубликатов.

Моя маленькая рекомендация - рассмотреть использование более описательного имени переменной вместо sl. Например, deduplicatedStringList сделает код более понятным на первый взгляд.

В целом, это чистый и эффективный способ отфильтровать строковый список в Delphi. Поздравления DeeCo за его поделкой!

В статье описывается процедура удаления дубликатов в TStringList, которая позволяет игнорировать попытки добавить к списку дубликаты строк и отображает список без повторяющихся элементов.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Списки ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 16:01:09/0.0062921047210693/0