Форум: "Основная";
Текущий архив: 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