![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
ekodov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 26.10.2005 Репутация: нет Всего: нет |
Такой вопрос: как организовать поиск в ListBox? Нужно также, как и в Блокноте - Найти и Найти далее. На форме кнопка Найти, Edit1, в котором я ввожу, то что надо найти, и сам ListBox1. И когда я жму Найти, должна выделиться строка, в которой присутствуют слова, введенные Edit1. Заранее спасибо.
![]() |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
если тебе нужно полное совпадение (т.е. поиск по полной строке), то воспользуйся методом IndexOf
"Номер Нужной строки":=ListBox1.Items.IndexOf('текст для поиска'). Если нужно частичное совпадение, то перебирай все Items у ListBoxa и проверяй, входит ли твоя подстрока в какой-либо из Items'ов ![]() |
|||
|
||||
Satana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 564 Регистрация: 15.9.2004 Где: Ставрополь, СЗ ра йон Репутация: 1 Всего: 5 |
Ну вот примерно так (это будет искаться первый из всех)
Для того чтобы дальше искалось тебе нужно будет продолжать поиск с того i на котором остановился. -------------------- |
|||
|
||||
ekodov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 26.10.2005 Репутация: нет Всего: нет |
Мне нужно частичное совпадение. Я знаю, что нужно проверять входит ли моя подстрока в какой-либо из Items'ов, но не знаю как это осуществить. |
|||
|
||||
MFSham |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Попробуй так :
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
||||
|
|||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
ekodov, как итем получить по индексу знаеш?
( ListBox1.Items[i] ) как число их получить? ( ListBox1.Count ) соответственно запускаем цикл и для всех итемов делаем if ( ListBox1.Items[i].Pos(строка) > 0 ) входит все. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ekodov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 26.10.2005 Репутация: нет Всего: нет |
Спасибо всем. В особенности MFSham'у.
|
|||
|
||||
ekodov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 26.10.2005 Репутация: нет Всего: нет |
to MFSham
Прошу прощения. Еще один вопрос. Нужно, чтобы, если ничего не найдено, выводилось 'Ничего не найдено'. Я пытался и так, и сяк внедрить это в ваш код, но не получалось. |
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
ekodov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 26.10.2005 Репутация: нет Всего: нет |
Но если в ListBox более 300 элементов, программа просто зависает, при попытке найти, к примеру - последний элемент.
Как с этим бороться? |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
не хранить там 300 элементов.
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Ускорить поик можно только если есть некоторая информация об элементах.
Добавлено @ 14:16 например сортировать их по каким то признакам. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
darkart |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 9.11.2005 Репутация: нет Всего: 31 |
Во-первых
исправь на
Во-вторых см. пост alexeis1 к примеру, если надо вести поиск по первым символам, то лучше отсортировать информацию и воспользоваться (к примеру) бинарным поиском |
||||
|
|||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
зачем две проверки красивее будет
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |