Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1091081401
ksa2002
2004-07-29 10:10
2004.08.15
combobox в Stringgride


1-1090965124
Ведьмак
2004-07-28 01:52
2004.08.15
toolbar для IE


1-1091174254
Fate
2004-07-30 11:57
2004.08.15
Не могу разобраться с полиморфизмом


1-1091200060
Antonmm
2004-07-30 19:07
2004.08.15
Всплывающая подсказка


3-1090241722
Григорьев Антон
2004-07-19 16:55
2004.08.15
Формат хранения данных в БД





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