C/C++:
wchar_t * sol_GetPhraseText( HGREN hEngine, int PhraseID )
char * sol_GetPhraseText8( HGREN hEngine, int PhraseID )
C#:
IntPtr sol_GetPhraseText( IntPtr hEngine, int PhraseID )
string sol_GetPhraseTextFX( IntPtr hEngine, int PhraseID )
Delphi:
function sol_GetPhraseText( hEngine: PInteger; PhraseID: integer ): PWideChar;
function sol_GetPhraseTextPAS( hEngine: PInteger; PhraseID: integer ): WideString;
Аргументы:
hEngine - дескриптор экземпляра грамматического словаря.
PhraseID - первичный ключ фразовой статьи.
Возвращает:
Указатель на строку с текстовым содержимым фразы.
Функции sol_GetPhraseText и sol_GetPhraseText8 возвращают текст фразы как строку из широких символов и utf-8 строку соответственно. После испоьзования указатель следует освободить вызовом функции sol_Free.
Так как работа с "голыми" указателями, которые возвращают функции API, неудобно в C# и Delphi, то в обертки для этих языков введены вспомогательные функции sol_GetPhraseTextFX и sol_GetPhraseTextPAS. Они возвращают строки как объекты соответствующих классов, System.String для .NET и WideString для Delphi, беря на себя труд по преобразованию и освобождению указателей.
Для получения дескриптора грамматического словаря можно использовать функции sol_CreateGrammarEngine и sol_LoadDictionary[A,W,8].
Для поиска фразовых статей по регулярному выражению можно воспользоваться функцией sol_ListEntries.
Поиск фразовых статей в SQL словаре выполняется запросом к таблице SG_TENTRY.
В ORM библиотеке фразовые статьи представляются объектами класса Phrase.
C++:
#include "solarix_grammar_engine.h"
...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
int phrase_id = sol_FindPhrase( hEngine, L"dirt road", 0 );
char * text_utf8 = sol_GetPhraseText( hEngine, phrase_id );
// ...
sol_Free(hEngine,text_utf8);
C#:
IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("..\\..\\bin-windows\\dictionary.xml");
// ...
int phrase_id = SolarixGrammarEngineNET.GrammarEngine.sol_FindPhrase( hEngine, "dirt road", 0 );
string text = SolarixGrammarEngineNET.GrammarEngine.sol_GetPhraseTextFX( hEngine, phrase_id );
Пример на Delphi:
uses SysUtils, Windows,
_sg_api in '..\..\..\..\..\include\lem\solarix\_sg_api.pas',
GrammarEngineApi in '..\..\..\..\..\include\lem\solarix\GrammarEngineApi.pas';
var hEngine: PInteger;
var id_phrase: integer;
var phrase_text: WideString;
begin
hEngine := sol_CreateGrammarEngineA( '..\..\..\..\..\bin-windows\dictionary.xml' );
id_phrase1 := sol_FindPhrase( hEngine, WideString('проверяем добавление фразы'), 0 );
phrase_text := sol_GetPhraseTextPAS( hEngine, id_phrase3 );
sol_DeleteGrammarEngine(hEngine);
end.
Приобретение SDK грамматического словаря
Класс Phrase - представление фразовой статьи в ORM библиотеке
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 27-Mar-11 | ||||||||||||||||||||||||||||||||||||||