уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Больше года назад я писал в блоге про API Яндекс.Спеллера – сервис проверки правописания. Тогда я представил вариант работы с API, используя простые POST-запросы и анализ XML.

Сегодня я решил вновь вернуться к этому API и написал небольшой компонент для Delphi который реализует работу с Яндекс.Спеллером через SOAP.

Установка компонента.

Для установки компонента необходимо:

1. Распаковать архив в любую директорию

2. Запустить Delphi и открыть пакет YandexSpeller.dpk

yaspell

3. Щелкнуть в Project Manager’е правой кнопкой мыши по YandexSpeller.bpl и выбрать Install.

Компонент YandexSpeller будет доступен с вкладки “BuBa Group” палитры компонентов.

Свойства компонента.

Компонент YandexSpeller является наследником от THTTPRio о котором я упоминал в прошлом посте. Все свойства, необходимые для работы с веб-сервисом устанавливаются автоматически при добавлении компонента на форму.

Свойство WSDLLocation: string

Задает положение WSDL-документа. Значение по умолчанию http://speller.yandex.net/services/spellservice?WSDL

Свойство Port: string

По умолчанию принимает значение SpellServiceSoap12

Свойство Service: string

По умолчанию принимает значение SpellService

Менять эти свойства стоит только в том случае, если произошли какие-либо изменения в работе API. Обо всех изменениях можно всегда узнать на страничке тех.поддержки сервиса.

Свойство Format: TFormat

Задает формат проверяемого текста и может принимать два значения plain или html. Значение по умолчанию plain.

Вкладка свойств SpellOptions

Здесь можно задать настройки Спелллера. Описания всех возможных настроек можно узнать на странице документации по API.

Вкладка свойств LangOptions

Здесь можно задать проверку на каких языках необходимо задействовать. На данный момент Спеллер поддерживает три языка для проверки правописания: русский, английский и украинский.

Значения по умолчанию: Russian = True, English = True;

Методы компонента.

Как и сам Спеллер, компонент содержит всего два метода.

function CheckText(Text: string): TCheckTextResponse;

Проверяет правописание в произвольной строке текста. Результат функции представляет собой объект:

CheckTextResponse = class(TRemotable)
  private
    FSpellResult: SpellResult;
  public
    constructor Create; override;
    destructor Destroy; override;
  published
    property SpellResult: SpellResult read FSpellResult write FSpellResult;
  end;

В котором SpellResult представляет собой массив объектов:

SpellError = class(TRemotable)
  private
    Fcode: Integer;
    Fpos: Integer;
    Frow: Integer;
    Fcol: Integer;
    Flen: Integer;
    Fword_: string;
    Fs: Array_Of_string;
    Fs_Specified: boolean;
    procedure Sets(Index: Integer; const AArray_Of_string: Array_Of_string);
    function  s_Specified(Index: Integer): boolean;
  published
    property code:  Integer  Index (IS_ATTR) read Fcode write Fcode;
    property pos:   Integer   Index (IS_ATTR) read Fpos write Fpos;
    property row:   Integer   Index (IS_ATTR) read Frow write Frow;
    property col:   Integer     Index (IS_ATTR) read Fcol write Fcol;
    property len:   Integer     Index (IS_ATTR) read Flen write Flen;
    property word_: string      read Fword_ write Fword_;
    property s:     Array_Of_string  Index (IS_OPTN or IS_UNBD) read Fs write Sets stored s_Specified;
end;

О том, что представляет каждое из свойств объекта SpellError можно узнать на этой странице документации по API.

function CheckTexts(Texts: TStrings): TCheckTextsResponse;

Проверка правописания в произвольном списке строк. Результат функции представляет собой массив объектов CheckTextResponse.

Пример использования компонента.

Создайте новое приложение Delphi и разместите на главной форме приложения следующие компоненты:

  • TYandexSpeller
  • TButton
  • TListBox

Напишите следующий обработчик onClick кнопки:

procedure TForm1.Button1Click(Sender: TObject);
var Res: TCheckTextResponse;
     Err: TSpellError;
     S: string;
begin
Res:=YandexSpeller1.CheckText('синхрофазатрон');
  for Err in Res.SpellResult do
    begin
      ListBox1.Items.Add('Ошибка в слове '+Err.word_);
      for s in Err.s do
        ListBox1.Items.Add(s)
    end;
end;

В приведенном выше коде мы используем метод CheckText для проверки правописания в слове “синхрофазатрон”. Затем выводим в ListBox сведения по найденным ошибкам и предлагаем варианты слов для правильного написания (свойство s).

Скачать исходник: Исходники —> API онлайн-сервисов —> Яндекс API

Книжная полка

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
купить книгу delphi на ЛитРес
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
купить книгу delphi на ЛитРес
0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
1 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
AUsatov
AUsatov
19/01/2019 22:36

Почему-то не устанавливается компонент на Delphi 2010.
Что может быть за проблема?
SOAP компоненты включены.
https://yadi.sk/i/QGXLWVk34ygptA