Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2012, 03:57   #1
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию Удаление дубликатов с ListBox

Есть такая конструкция:
Код:
  for I := 1 to Max.Count do begin
   ListBox1.Items.Add(Max.box.Item[I].Name);
  end;
ListBox1 получается подобного содержания:
Код:
Андрей|22
Вася|433
Коля
Динис|lkjklj
Викуля
Вася|доло
Коля|2322
Необходимо избавиться от дубликатов, неважно что после |
Если имя повторяется эту строчку писать не нужно.

Если для этого не нужно писать какую либо серьезную сортировку расскажите пожалуйста как это сделать.
celovec вне форума Ответить с цитированием
Старый 21.01.2012, 07:16   #2
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Код:
var
  i,j,k:Integer;
  s:string;
begin
  for i:=listbox1.count-1 downto 0 do
  begin
    k:=pos('|',listbox1.items[i]);
    s:=copy(listbox1.items[i],1,k-1);
    for j:=listbox1.count-1 downto i+1 do
      if Pos(s,listbox1.items[j])=1 then listbox1.Items.delete(j);
  end;
end;
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 21.01.2012, 14:25   #3
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Спасибо большое.
celovec вне форума Ответить с цитированием
Старый 27.01.2012, 17:13   #4
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Эти несколько дней тестировал вариант от 3D Hunter, но он пропускает некоторые строки. К сожалению пока не могу понять почему.
celovec вне форума Ответить с цитированием
Старый 27.01.2012, 17:28   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Может пробел где-то стоит?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.01.2012, 17:34   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1.Не учтено, что может быть просто Коля без |
2.Не учтено, что может быть Вася| и Васяя| Тогда Васяя удалится, если Вася будет ближе к началу списка, хотя это и не дубликат
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.01.2012, 07:59   #7
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Столько времени прошло и вы не смогли понять элементарный код?
Тогда остается только помочь еще раз:
Код:
var
  i,j:Integer;
  s:string;

  function GetString(const AIndex:Integer):AnsiString;
  var
    k:integer; 
  begin
    k:=pos('|',listbox1.items[AIndex]);
    if k=0 then k:=High(Integer);
    Result:=copy(listbox1.items[AIndex],1,k-1);    
  end;
   
begin
  for i:=listbox1.count-1 downto 0 do
  begin
    s:=GetString(i);
    for j:=listbox1.count-1 downto i+1 do
      if GetString(j)=s then listbox1.Items.delete(j);
  end;
end;
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 13.09.2016, 09:07   #8
hespers
 
Регистрация: 03.05.2015
Сообщений: 5
По умолчанию 3D Hunter

3D Hunter спасибо.
hespers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление дубликатов строк hon Паскаль, Turbo Pascal, PascalABC.NET 10 02.08.2011 05:29
удаление дубликатов в ListView fate Общие вопросы Delphi 8 12.05.2011 16:51
Удаление дубликатов Deltist Microsoft Office Excel 11 14.01.2011 16:01
поиск дубликатов файлов(имя, тип, размер). Вывод дубликатов на экран с отображением их пути faraon1792 Помощь студентам 4 19.03.2010 23:46
удаление дубликатов и группировка строк Serglen Microsoft Office Excel 2 30.07.2008 15:51