C/C++:
int sol_GetEntryName( HGREN hEngine, int EntryID, wchar_t * NameBuffer )
int sol_GetEntryName8( HGREN hEngine, int EntryID, char * NameBufferUtf8 )
C#:
int sol_GetEntryName( IntPtr hEngine, int EntryID, StringBuilder NameBuffer )
string sol_GetEntryNameFX( IntPtr hEngine, int EntryID )
Delphi:
function sol_GetEntryName( hEngine: PInteger; EntryID: Integer; NameBuffer: PWideChar ): Integer;
function sol_GetEntryName8( hEngine: PInteger; EntryID: Integer; NameBufferUtf8: PAnsiChar ): Integer;
PHP:
sol_GetEntryName8( HGREN hEngine, int EntryID )
Аргументы:
hEngine - дескриптор экземпляра морфологического словаря.
EntryID - первичный ключ (ID) словарной статьи.
NameBuffer - буфер, куда будет записано наименование словарной статьи.
Возвращает:
0 - наименование занесено в буфер.
число<0 - ошибка.
PHP и FX версии и возвращает строку с именем словарной статьи.
Функции sol_GetEntryName и sol_GetEntryName8 отличаются текстовой кодировкой наименования словарной статьи. Функция с суффиксом 8 - записывает наименование в кодировке utf-8.
Длина буфера должна быть достаточна для размещения там строки с конечным нулем. Для получения необходимого размера буфера следует использовать функции sol_MaxLexemLen и sol_MaxLexemLen8.
ID словарной статьи, то есть параметр вызова EntryID, является результатом выполнения многих функций API. Например, функция sol_FindEntry ищет словарную статью по её наименованию, с заданием части речи и языка.
Для платформы .NET есть удобная функция-обертка sol_GetEntryNameFX. Она возвращает строку с именем словарной статьи вместо того, чтобы требовать аргумент типа StringBuilder.
В рамках SQL словаря наименования словарных статей хранятся в таблице SG_ENTRY.
Функции потокобезопасны.
Обычно название словарной статьи совпадает с базовой формой слова. Для русских существительных это форма именительного падежа единственного числа. Для русских и английских глаголов - инфинитив.
ORM библиотека предоставляет доступ к наименованию словарной статьи через свойство класса WordEntry.
Пример на C++:
#include "solarix_grammar_engine.h"
...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
//...
int entry_id = sol_FindEntry( hEngine, L"МАМА", NOUN_ru, RUSSIAN_LANGUAGE );
int n = sol_MaxLexemLen(hEngine);
wchar *buffer = new wchar_t[n];
sol_GetEntryName( hEngine, entry_id, buffer );
// ...
delete [] buffer;
// ...
Пример на C#:
IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("..\\..\\bin-windows\\dictionary.xml");
// ...
int entry_id = SolarixGrammarEngineNET.GrammarEngine.sol_FindEntry( hEngine, "МАМА", -1, -1 );
StringBuilder buffer = new StringBuilder( SolarixGrammarEngineNET.GrammarEngine.sol_MaxLexemLen(gren) );
SolarixGrammarEngineNET.GrammarEngine.sol_GetEntryName( gren, entry_id, buffer );
// ...
Приобретение SDK грамматического словаря
Класс WordEntry - описание словарной статьи в ORM библиотеке
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 30-Oct-11 | ||||||||||||||||||||||||||||||||||||||