Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Поиск в ListBox |
Автор: ekodov 26.10.2005, 12:00 |
Такой вопрос: как организовать поиск в ListBox? Нужно также, как и в Блокноте - Найти и Найти далее. На форме кнопка Найти, Edit1, в котором я ввожу, то что надо найти, и сам ListBox1. И когда я жму Найти, должна выделиться строка, в которой присутствуют слова, введенные Edit1. Заранее спасибо. ![]() |
Автор: Bose 26.10.2005, 12:07 |
если тебе нужно полное совпадение (т.е. поиск по полной строке), то воспользуйся методом IndexOf "Номер Нужной строки":=ListBox1.Items.IndexOf('текст для поиска'). Если нужно частичное совпадение, то перебирай все Items у ListBoxa и проверяй, входит ли твоя подстрока в какой-либо из Items'ов ![]() |
Автор: Satana 26.10.2005, 12:12 | ||
Ну вот примерно так (это будет искаться первый из всех)
Для того чтобы дальше искалось тебе нужно будет продолжать поиск с того i на котором остановился. |
Автор: ekodov 26.10.2005, 19:54 | ||
Мне нужно частичное совпадение. Я знаю, что нужно проверять входит ли моя подстрока в какой-либо из Items'ов, но не знаю как это осуществить. |
Автор: MFSham 26.10.2005, 20:56 | ||||
Попробуй так :
|
Автор: _hunter 27.10.2005, 11:39 |
ekodov, как итем получить по индексу знаеш? ( ListBox1.Items[i] ) как число их получить? ( ListBox1.Count ) соответственно запускаем цикл и для всех итемов делаем if ( ListBox1.Items[i].Pos(строка) > 0 ) входит все. |
Автор: ekodov 29.10.2005, 10:59 |
Спасибо всем. В особенности MFSham'у. |
Автор: ekodov 2.11.2005, 18:39 |
to MFSham Прошу прощения. Еще один вопрос. Нужно, чтобы, если ничего не найдено, выводилось 'Ничего не найдено'. Я пытался и так, и сяк внедрить это в ваш код, но не получалось. |
Автор: Albinos_x 2.11.2005, 20:11 | ||
|
Автор: ekodov 18.1.2006, 13:46 |
Но если в ListBox более 300 элементов, программа просто зависает, при попытке найти, к примеру - последний элемент. Как с этим бороться? |
Автор: _hunter 18.1.2006, 14:03 |
не хранить там 300 элементов. |
Автор: Alexeis 18.1.2006, 14:15 |
Ускорить поик можно только если есть некоторая информация об элементах. Добавлено @ 14:16 например сортировать их по каким то признакам. |
Автор: darkart 18.1.2006, 14:32 | ||||
Во-первых
исправь на
Во-вторых см. пост alexeis1 к примеру, если надо вести поиск по первым символам, то лучше отсортировать информацию и воспользоваться (к примеру) бинарным поиском |
Автор: Alexeis 18.1.2006, 14:36 | ||||
зачем две проверки красивее будет
|