Главная страница
    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.46 MB
Время: 0.006 c
4-34644
squab
2003-03-11 23:04
2003.05.12
перетаскивание окна.


1-34403
Бедный
2003-04-29 18:58
2003.05.12
создание 500000 картинок..или взгляды психа на жизнь...


1-34402
anton2v
2003-04-30 11:50
2003.05.12
Размер программы на диске


14-34546
Vlad Oshin
2003-04-10 13:19
2003.05.12
Про стабилизаторы. Вообще-то вряд ли кто скажет, но вдруг...


14-34542
Kobik
2003-04-18 18:55
2003.05.12
Вопрос по HTML





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский