Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Я вроде как сделал,но
Вопрос
Я поменял функции utf8ToString на Utf8ToAnsi

Это правильно?
3 апр 19, 11:50    [21851090]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

понятия не имею. Какую именно UDF вы модифицируете? Ссылка на код, и название функции, ну или здесь пример кода под спойлером выложи
3 апр 19, 11:55    [21851100]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис
Alepawka,

понятия не имею. Какую именно UDF вы модифицируете? Ссылка на код, и название функции, ну или здесь пример кода под спойлером выложи


Итак, не модифицирую, скорей переписываю для работы на linux
11351770

Что именно я сделал:
Файл u_Func.pas

Удалил эту часть кода:

uses
{$IF CompilerVersion > 22}
Winapi.Windows;
{$ELSE}
Windows;
{$IFEND}

function AnsiUpperCase(const S: String): String;
{$IFDEF MSWINDOWS}
var
Len: Integer;
begin
Len := Length(S);
SetString(Result, PChar(S), Len);
if Len > 0 then
CharUpperBuff(PChar(Result), Len);
end;
{$ENDIF MSWINDOWS}
{$IFDEF POSIX}
begin
Result := UCS4StringToUnicodeString(UCS4UpperCase(UnicodeStringToUCS4String(S)));
end;
{$ENDIF POSIX}

Посмотрел, что условие для windows, удалил
Далее, посмотрел документацию по FPC - AnsiUpperCase есть встроенная, поэтому тоже удалил.

Далее
В главном файле проекта, как уже сказал раньше, вместо utf8ToString поставил Utf8ToAnsi
(Прикрепил файл)

К сообщению приложен файл (udf_StrMatch.dpr - 2Kb) cкачать
3 апр 19, 12:30    [21851151]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

FPC какой версии? Для облегчения миграции для начала неплохо бы врубить режим дельфи

{$IFDEF FPC}
{$MODE DELPHI}{$H+}
{$ENDIF}

и не забывать включить многопоточный менеджер памяти в список модулей

{$IFDEF unix}
cthreads,
{$ENDIF }
3 апр 19, 13:37    [21851264]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
3.0.4
Спасибо) добавил код
Кстати, написал, функции работают)
Спасибо большое за помощь!)
3 апр 19, 14:08    [21851301]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Вот вопрос с кодировками
При создании функции был указан тип cstring.
В какой формат мне конвертировать данные из БД, чтоб функция работала корректно?

Допустим, есть человек в базе Иванов Иван Иванович.
Пишу запрос:
Select sername || ' ' || name as name, 
"SIMILAR" ('Иванов Иван Иванович', name)
from ...

И выдает, что совпадение 89.
3 апр 19, 14:23    [21851322]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

у тебя БД в какой кодировке?
3 апр 19, 14:38    [21851345]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Столбцы в varchar
Пробовал с cast преобразовывать
Так же
Пробовал trim - тоже не помогает
3 апр 19, 14:48    [21851361]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
А может сделать временную таблицу?

Сделать процедуру поиска
Данные с формы добалять, допустим, в столбец временной таблицы
И пусть он сравнивает с моей таблицей людей?
3 апр 19, 14:52    [21851367]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9634
Alepawka,

я тебя про кодировку спрашиваю, а ты мне про варчары
3 апр 19, 15:08    [21851383]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Симонов Денис,
Ахах, прости, utf8
3 апр 19, 16:51    [21851501]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Док
Member

Откуда: Казань
Сообщений: 6221
Симонов Денис
и не забывать включить многопоточный менеджер памяти в список модулей

{$IFDEF unix}
cthreads,
{$ENDIF }

вдогонку...
дока (по-крайне мере, для Лазаря) еще рекомендует подключать туда же и сишный манагер памяти cmem (тынц, тынц), который имеет некоторые преимущества перед фрипаскалевским.
3 апр 19, 21:22    [21851819]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск  [new]
Alepawka
Member

Откуда:
Сообщений: 40
Док,
Спасибо большое за информацию, все сделал)
4 апр 19, 10:23    [21852168]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Firebird, InterBase Ответить