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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2008, 03:43   #1
spiteful41
 
Регистрация: 20.05.2008
Сообщений: 9
По умолчанию

Имеется листбокс,в нем строки.Нужно каждую строчку сравнить с другими,и если есть повторяющиеся их удалить,а сравниваемую оставить.Помогите,у меня почему-то некорректно работает,напишите свой вариант кода .Заранее спасибо

прогу на делфи пишу
Когда программист ложится спать,он ставит рядом с собой два стакана- первый с водой(на случай если он захочет пить),второй пустой(если не захочет)=))

Последний раз редактировалось Stilet; 21.07.2008 в 08:16.
spiteful41 вне форума Ответить с цитированием
Старый 21.07.2008, 08:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Помогите,у меня почему-то некорректно работает
Код в студию.
Цитата:
напишите свой вариант кода
Показывай наработки иначе - Фриланс.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2008, 09:17   #3
spiteful41
 
Регистрация: 20.05.2008
Сообщений: 9
По умолчанию

for i:=0 to listbox1.Items.Count-1 do
for j:=i+1 to listbox1.Items.Count do
if listbox1.Items.Strings[j]=listbox1.Items.Strings[i] then listbox1.Items.Delete[j]
Когда программист ложится спать,он ставит рядом с собой два стакана- первый с водой(на случай если он захочет пить),второй пустой(если не захочет)=))
spiteful41 вне форума Ответить с цитированием
Старый 21.07.2008, 10:05   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так попробуй:
Код:
var k,e,i:integer;  s:string;
begin
//********* FOR ******************
i :=0; while i<ListBox1.Items.Count  do
begin
 s:=ListBox1.Items[i];
 e:=ListBox1.Items.IndexOf(s);k:=e;
 e:=ListBox1.Perform(LB_FINDSTRING,e,integer(pchar(s)));
 while e<>k do begin
  ListBox1.Items.Delete(e);
  e:=ListBox1.Perform(LB_FINDSTRING,e,integer(pchar(s)));
 end;
 inc(i);
end;
//******* END FOR ****************{}
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2008, 10:55   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

spiteful41, ну, или, если всё же оставить Вашу идею с циклами, то можно так:

Код:
  i := 0;
  while i<(listbox1.Items.Count-1) do begin
     j:= (listbox1.Items.Count-1);
     while j>i do begin
       if (listbox1.Items.Strings[j]=listbox1.Items.Strings[i])
         then listbox1.Items.Delete(j);
       Dec(j);
     end;
     inc(i);
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.07.2008, 14:02   #6
spiteful41
 
Регистрация: 20.05.2008
Сообщений: 9
По умолчанию

Спасибо Всем Огромнейшее!!!!)))
Когда программист ложится спать,он ставит рядом с собой два стакана- первый с водой(на случай если он захочет пить),второй пустой(если не захочет)=))
spiteful41 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ListBox SANTA_KLAUD Общие вопросы Delphi 1 27.05.2008 13:10
Работа с ListBox xakkkkker Общие вопросы Delphi 1 17.05.2008 23:09
Работа с ListBox. CyberOrcX Компоненты Delphi 2 13.05.2008 18:41
C++.Visual Studio 2005.WinApp.Работа с ListBox mat90x Помощь студентам 10 21.04.2008 17:40
помогите с ListBox LeoN Компоненты Delphi 10 17.11.2006 19:17