В поисках регистронезависимого поиска в блобах набрел на эту библиотечку (сабж 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
если кто работает с этой библиотекой или есть желание помочь с сишными исходниками - кусочек вышлю сразу
rfunc.dll, b_textpos (BLOB Search)
если blobsearch из udfdemo устраивает, вкрути туда upcase или чем там в дельфях upper делается. только дельфийский вызов вызывает системную функцию, и если локаль не будет равна 1251, то результат upcase будет не тем, что ожидается для 1251 
а если надо rfunc - то тут проблема с тем, что придется жестко "вструмлять" upper для 1251 с таблицей, потому что под юниксами мало ли какая кодировка системная. ну и опять же, совместимость по вызову разных функций в разных ОС. Можно их попросить сделать отдельную функцию с четким преобразованием upper к 1251.

а если надо rfunc - то тут проблема с тем, что придется жестко "вструмлять" upper для 1251 с таблицей, потому что под юниксами мало ли какая кодировка системная. ну и опять же, совместимость по вызову разных функций в разных ОС. Можно их попросить сделать отдельную функцию с четким преобразованием upper к 1251.
-
- Сообщения: 31
- Зарегистрирован: 27 окт 2004, 11:56
Я тут вспомнил, пробегала в e.p.i. ссылочка на FastTextSearch for Interbase - http://www.softcomplete.com/devtext.asp
Сам не юзал, но по описанию - штука навороченная, глянь, вроде и с русским языком работает.
Сам не юзал, но по описанию - штука навороченная, глянь, вроде и с русским языком работает.
Благодарственная и окончательная :-)
Переборов природный страх перед самим фактом изменения исходников.. набрался духу и заменил в blobsearch из udfdemokdv писал(а):если blobsearch из udfdemo устраивает, вкрути туда upcase или чем там в дельфях upper делается. только дельфийский вызов вызывает системную функцию, и если локаль не будет равна 1251, то результат upcase будет не тем, что ожидается для 1251![]()
Found := SearchSample(Buf, KeyWord);
на
Found := SearchSample(AnsiStrUpper(Buf), AnsiStrUpper(KeyWord));
хм.. вроде как работает!

спасибо за мысль. в след раз буду по-смелее!

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