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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2021, 13:37   #1
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию Цикл по ListBox

Здравствуйте, подскажите пожалуйста, где-то косячу с циклами.
Есть два ListBox, в ListBox1 допустим 20 items, в ListBox2 1000 aitems,
нужно чтобы строки из ListBox перенеслись в ListBox2, но при условии, что в ListBox2 ещё нет такой строки.
Делаю так:
Код:
procedure TForm1.BbAddDicClick(Sender: TObject); 
  var
  i, i1 : integer;
  Key1 : string;
begin
  for i := 0 to ListBox1.Items.Count - 1 do
  begin
  Key1 := ListBox1.Items[i];
    for i1 := 0 to ListBox2.Items.Count - 1 do
  if Key1 <> ListBox2.Items[i1] then
    ListBox2.Items.Add(ListBox1.Items[i]);
    end;
end;
Строки переносятся, но получается 165696 строк, начинают повторятся, первая строка 2 раза, вторая 8 раз и так далее.
Помогите пожалуйста.
Alex711 вне форума Ответить с цитированием
Старый 02.10.2021, 15:10   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,537
По умолчанию

Вроде так.
Код:
procedure TForm1.BbAddDicClick(Sender: TObject); 
  var
  i, i1 : integer;
  flag: Boolean ;
  Key1 : string;
begin
  for i := 0 to ListBox1.Items.Count - 1 do
  begin
    Key1 := ListBox1.Items[i];
    flag := True ;
    for i1 := 0 to ListBox2.Items.Count - 1 do
         if Key1 = ListBox2.Items[i1] then
            begin flag := False ; Break end ;
    if flag then ListBox2.Items.Add(ListBox1.Items[i]);
  end;
end;
digitalis вне форума Ответить с цитированием
Старый 02.10.2021, 21:12   #3
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию

digitalis, digitalis спасибо огромное, то что надо!
Alex711 вне форума Ответить с цитированием
Старый 03.10.2021, 11:26   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,537
По умолчанию

"Это же элементарно, Ватсон!" ©
digitalis вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл если listbox пустой то alman12 Общие вопросы Delphi 25 12.06.2014 18:27
Цвет строки ListBox через цикл в зависимости от параметра waka2ebawer Общие вопросы Delphi 2 11.07.2013 23:28
как добавить в listbox файлы(пишу с помощью bassplayer)(Listbox+opendialog=play) blackstersl Общие вопросы Delphi 11 09.06.2010 13:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34