rfunc.dll, b_textpos (BLOB Search)

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
GoodWorks
Сообщения: 2
Зарегистрирован: 17 янв 2005, 14:47

rfunc.dll, b_textpos (BLOB Search)

Сообщение GoodWorks » 17 янв 2005, 15:10

В поисках регистронезависимого поиска в блобах набрел на эту библиотечку (сабж http://rfunc.sourceforge.net/rus). но обнаружил, что она в моей конфигурации не работает (IB 6.5)
Имеем поле в домене D_FM_BLOB = BLOB SUB_TYPE 1 SEGMENT SIZE 1.
В запросах fn_b_textpos(CSTRING(255), BLOB) четко реагирует на цифры и английские символы, причем регистронезависимо, а вот на русские совсем никак. Да.. есть сырцы, но они на С, а я в нем вовсем не рублю. т.е. можно попытаться, но времени как всегда нема.
Может кто подскажет где я не прав, или ткнуть пальцем в аналогичные
исходники на Паскале.
Заранее благодарю!
IB6.5, Delphi 6
если кто работает с этой библиотекой или есть желание помочь с сишными исходниками - кусочек вышлю сразу

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 янв 2005, 15:11

насчет поиска в блобе было что то такое в udfdemo. насчет segment size - это весело, см. faq.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 янв 2005, 17:01

если blobsearch из udfdemo устраивает, вкрути туда upcase или чем там в дельфях upper делается. только дельфийский вызов вызывает системную функцию, и если локаль не будет равна 1251, то результат upcase будет не тем, что ожидается для 1251 :-)

а если надо rfunc - то тут проблема с тем, что придется жестко "вструмлять" upper для 1251 с таблицей, потому что под юниксами мало ли какая кодировка системная. ну и опять же, совместимость по вызову разных функций в разных ОС. Можно их попросить сделать отдельную функцию с четким преобразованием upper к 1251.

Данилов Юрий
Сообщения: 31
Зарегистрирован: 27 окт 2004, 11:56

Сообщение Данилов Юрий » 17 янв 2005, 17:20

Я тут вспомнил, пробегала в e.p.i. ссылочка на FastTextSearch for Interbase - http://www.softcomplete.com/devtext.asp
Сам не юзал, но по описанию - штука навороченная, глянь, вроде и с русским языком работает.

GoodWorks
Сообщения: 2
Зарегистрирован: 17 янв 2005, 14:47

Благодарственная и окончательная :-)

Сообщение GoodWorks » 18 янв 2005, 09:17

kdv писал(а):если blobsearch из udfdemo устраивает, вкрути туда upcase или чем там в дельфях upper делается. только дельфийский вызов вызывает системную функцию, и если локаль не будет равна 1251, то результат upcase будет не тем, что ожидается для 1251 :-)
Переборов природный страх перед самим фактом изменения исходников.. набрался духу и заменил в blobsearch из udfdemo
Found := SearchSample(Buf, KeyWord);
на
Found := SearchSample(AnsiStrUpper(Buf), AnsiStrUpper(KeyWord));
хм.. вроде как работает! :-)
спасибо за мысль. в след раз буду по-смелее! ;-)

to Данилов Юрий: спасибо за ссылочку. изучаю для применения в будущих проектах!

Ответить