Удаление дубликатов в TStringListDelphi , Компоненты и Классы , СпискиУдаление дубликатов в TStringList
Оформил: DeeCo 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, которая позволяет игнорировать попытки добавить к списку дубликаты строк и отображает список без повторяющихся элементов. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |