Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Вниз

Поиск строки в Listbox в разных регистрах и не с начала строки   Найти похожие ветки 

 
Spartak   (2003-04-30 11:32) [0]

просмотрел 2 примера как найти строку в listbox :

if InputQuery("Поиск ", "Введите название или его первые буквы", Strk) then
ListBox1.Perform(LB_SELECTSTRING,-1,longint(Pchar(strk)));

так вот как сделать чтобы строка искалась при совпадении хотя бы 2-3 символов .
Например у меня такой список

c:\m\d\f\ggg\sss\1.txt
c:\m\d\f\ggg\sss\2.txt
c:\m\d\f\ggg\sss\3.txt
c:\m\d\f\ggg\sss\4.txt
c:\m\d\f\ggg\sss\5.txt
c:\m\d\f\ggg\sss\6.txt
c:\m\d\f\ggg\sss\7.txt

и чтобы пользователь мог ввести всего 4.txt и ему будет найдена эта строка .

а в примере который я дал , ищеться только символы с начала строки


 
stone   (2003-04-30 12:14) [1]

ИМХО, тут в цикле перебирать придется используя pos или StrPos


 
Striker   (2003-04-30 12:59) [2]

а если записей очень много ? например несколько тысяч


 
Spartak   (2003-04-30 13:00) [3]

Да ! записей где то 5-9 тыс :( так что циклом не пойдёт ! :(

может можно как то подругому ?


 
stone   (2003-04-30 13:06) [4]


> Spartak © (30.04.03 13:00)

А в чем проблема? С начала ищется с первой строки до первого "вхождения" потом прерывается, если надо дальше, то ищешь соответственно уже не с первой строки


 
kres   (2003-04-30 13:20) [5]

Такая идея (получится или нет - не знаю, пробовать времени нет):
Использовать свойство LisnBox.Items.Text - весь список в одной строке. В нём найти pos и определить, к какой строке это относится (ближайшие слева-справа переводы строки).


 
Spartak   (2003-04-30 13:24) [6]

> kres

Идея хорошая ! а как реализовать не знаю :(

попробую что предложил stone


 
kres   (2003-04-30 13:36) [7]

> Spartak © (30.04.03 13:24)
> Идея хорошая ! а как реализовать не знаю :(

Ты программатор или нет? :)

> попробую что предложил stone

А если у тебя первое вхождение будет в 8999-й строке (из 9000)? Тогда твоя прога заглохнет на некоторое время.

Кстати, ещё одна идея: тот же принцип, что и у предыдущей, только использовать не саму строку (String), а указатель (PChar), может быстрее будет работать.


 
Spartak   (2003-04-30 13:56) [8]

да ... хорошо бы примерчик ! то есть кодом если не трудно


 
ASMiD   (2003-04-30 14:21) [9]

Господа!
О чем спор?
Все подобные задачи решаются перебором.
Весь вопрос в том, что если есть какая-то закономерность в расположении строк - тогда можно попытаться ускорить поиск.
Кстати, PChar - и операции с ним выполняются медленнее, чем с
String.
И еще по поводу закономерностей.
Возможно есть смысл предварительно отсортировать строки по какому-либо признаку.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-34586
Тих
2003-04-23 19:40
2003.05.12
Склонение имен-фамилий-отчеств в разных падежах


14-34595
seth
2003-04-24 12:30
2003.05.12
сказка


11-34383
ODUVAN
2002-08-01 20:23
2003.05.12
Не могу поймать сообщения от мыши в SysTray!!!


14-34578
Ixion
2003-04-23 00:34
2003.05.12
Посоветуйте ЖК монитор


1-34411
TRESDA
2003-04-28 14:42
2003.05.12
Табуляция в Memo.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский