Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизПоиск в предложении по комбинации букв Найти похожие ветки
← →
V l a d i m i r (2004-08-03 14:31) [0]День добрый! У меня вот такой вопрос: необходимо предусмотреть возможность поиска предложения по комбинации букв (например, найти "вкусное яблоко", а в форме поиска задать только "око"). Каким образом можно перебрать буквы предложения и сопоставить их с ключом поиска?
← →
Kurtevich (2004-08-03 14:33) [1]тю дык
Pos("око", "вкусное яблоко");
← →
Sergey_Masloff (2004-08-03 14:35) [2]Искать реализацию RegExp например
Или делать like "%xxx%"
← →
V l a d i m i r (2004-08-03 14:48) [3]Я уточню: информация хранится в БД (Paradox) и выводится в DBGrid"е. Например, первая запись грида - сочный апельсин, вторая запись - вкусное яблоко и т.д. Задаю ключ поиска в форме поиска и необходимо найти ту запись, в которой встречается данное словосочетание. Проще говоря, будут две переменные типа String, одна из которых хранит название текущей записи, а другая ключ поиска. С помощью какой процедуры можно проверить, встречается ли в данном предложении искомая комбинация или нет? Если нет, то я перехожу к следующей записи и повторяю проверку... Существует ли такая стандартная функция по поиску в предложении комбинации слов? СПАСИБО ЗА ПОМОЩЬ!
← →
Sergey Kaminski © (2004-08-03 15:32) [4]Pos
← →
V l a d i m i r (2004-08-03 16:27) [5]Ок, спасибо! Осталось только проверить в работе... :)
← →
[lamer]Barmaglot © (2004-08-03 17:14) [6]Кошмар... А что-нибудь побыстрее Pos"а посоветовать никак? Он же напишет его в программу, а потом будет спрашивать, почему при 10000 записей он так долго ишет...
← →
V l a d i m i r (2004-08-03 17:20) [7]> [lamer]Barmaglot ©
> А что-нибудь побыстрее Pos"а посоветовать никак?
Если есть что-нибудь побыстрее POS"a, то я всеми руками за и весь во внимании...
← →
begin...end © (2004-08-03 17:43) [8]КМП-поиск. Или, что лучше, алгоритм Боуера и Мура.
www.yandex.ru
← →
Sergey Kaminski © (2004-08-03 17:47) [9][lamer]Barmaglot © (03.08.04 17:14) [6]
>
А что-нибудь побыстрее Pos"а посоветовать никак?
Посоветуй.
← →
Sandman25 © (2004-08-03 17:49) [10]А нефиг на форме иметь 10000 записей. Тут не фильтр нужен, а select c where.
← →
[lamer]Barmaglot © (2004-08-03 17:54) [11]Запросто, начиная с уже сказанного Боуэра-Мура и Карпа-Рабина, Бинарного поиска и заканчивая более новыми, которые надо искать в книжках и журналах. дома лежит книга в ней более 30 алгоритмов точного поиска подстроки в строке...
подробнее здесь: http://algolist.manual.ru/search/index.php
← →
V l a d i m i r (2004-08-03 17:58) [12]> Sandman25 ©
Так оно и есть. В верхней части окна располагается TTreeView с ограниченным количеством уровней (4 уровень - корень дерева). Так вот именно записи 4 (самого нижнего уровня) отображаются в гриде в нижней части окна... Выделяя родителя в дереве, в гриде отображаются все его дочерние записи 4 левела. Собственно SQL-й запрос выводит сразу все записи только при открытии окна, те когда выделен самый верхний родительский уровень, а уже далее продвигаясь по дереву количество записей грида изменяется.
Собственно, я уже в дебри зашел... Мне просто нужно составить поисковичок. Если Pos подойдет, я его забираю! :)
← →
Sergey Kaminski © (2004-08-03 18:05) [13][lamer]Barmaglot © (03.08.04 17:54) [11]
А это не мне, а автору ветки надо было посоветовать. А не ругаться на Pos.
V l a d i m i r (03.08.04 17:58) [12]
Если Pos подойдет, я его забираю! :)
Пользуй на здоровье! Он ОБЩИЙ :)))
← →
begin...end © (2004-08-03 18:19) [14]
> [11] [lamer]Barmaglot © (03.08.04 17:54)
> Бинарного поиска
Э-э... Ну, бинарный поиск для этой задачи, ИМХО, не катит. В общем случае, по крайней мере.
← →
KADAN © (2004-08-03 23:03) [15]
DBGrid1.DataSource.DataSet.Locate("Fruit","око",[loPartialKey, loCaseInsensitive]);
← →
TUser © (2004-08-04 06:38) [16]Pos, а если по-умному - см. на алголисте алгоритм Кнута-Мориса-Пратта.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c