Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Учимся программировать
>
Начинающим
(Модератор:
Sla
) > Тема:
проблема с ListBox [C++Builder]
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: проблема с ListBox [C++Builder] (Прочитано 6716 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alex87
Постоялец
Offline
Пол:
проблема с ListBox [C++Builder]
«
:
30-04-2009 04:05 »
проблема состоит в том, что надо при добавление элементов в ЛистБох проверять на то чтоб небыло одинаковых!!!
код:
Код:
for (j=0; j<ListBox1->Count; j++)
{
wq = ListBox1->Items->Strings[j];
if (IP_list!=wq)
ListBox1->Items->Add(IP_list);
else
{
MessageDlg("Такой адрес уже есть!",
mtError, TMsgDlgButtons() << mbOK, 0);
break;
}
}
что не так???
Записан
zubr
Гость
Re: проблема с ListBox [C++Builder]
«
Ответ #1 :
30-04-2009 06:21 »
У тебя производится перед добавлением элемента проверка не всего списка. То есть при каждом не совпавшем элементе (а впереди списка могут быть и совпавшие) происходит добавление. Вот правильный код:
Код:
bool b = false;
for (j=0; j<ListBox1->Count; j++)
{
wq = ListBox1->Items->Strings[j];
if (IP_list==wq)
{
b = true;
break;
}
}
if(not b)
ListBox1->Items->Add(IP_list);
else
MessageDlg("Такой адрес уже есть!",
mtError, TMsgDlgButtons() << mbOK, 0);
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: проблема с ListBox [C++Builder]
«
Ответ #2 :
30-04-2009 14:06 »
Я бы не стал заморочиваться на цикл. Не из-за скорости, а из-за удобства, компактности и понятности кода.
Код: (C++)
#include <map>
typedef
str
::
map
<
AnsiString,
int
>
map_int_by_string_t
;
// .....
map_int_by_string_t items
;
// .....
if
(
items.
find
(
new_string
)
==
items.
end
(
)
)
{
// повтора нет
items
[
new_string
]
=
0
;
}
else
{
// повтор
}
«
Последнее редактирование: 30-04-2009 14:07 от RXL
»
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Учимся программировать
>
Начинающим
(Модератор:
Sla
) > Тема:
проблема с ListBox [C++Builder]
Загружается...