Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.26. Вспомогательный объект для разбора текста

А.5.26.3. rdsSTRAddKeywordsArray – добавление набора ключевых слов

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.26. Вспомогательный объект для разбора текста

##### А.5.26.3. rdsSTRAddKeywordsArray – добавление набора ключевых слов

Функция rdsSTRAddKeywordsArray добавляет в объект разбора текста сразу несколько ключевых слов и присваивает им последовательные целые идентификаторы. В процессе разбора текста при совпадении очередного слова с одним из этих ключевых слов объект будет возвращать идентификатор, соответствующий найденному слову.

      BOOL RDSCALL rdsSTRAddKeywordsArrayA(
        RDS_HOBJECT Parser, // Объект
        RDSCSTR *Keywords,  // Массив ключевых слов (UTF8)
        int WordCount,      // Число слов в массиве
        int StartId         // Начальный идентификатор
      );
      BOOL RDSCALL rdsSTRAddKeywordsArrayW(
        RDS_HOBJECT Parser, // Объект
        RDSWCSTR *Keywords, // Массив ключевых слов (UTF16)
        int WordCount,      // Число слов в массиве
        int StartId         // Начальный идентификатор
      );
      // Функция-псевдоним
      BOOL RDSCALL rdsSTRAddKeywordsArray(
        RDS_HOBJECT Parser, // Объект
        RDSXCSTR *Keywords, // Массив ключевых слов (кодировка по умолчанию)
        int WordCount,      // Число слов в массиве
        int StartId         // Начальный идентификатор
      );

Тип указателя на эту функцию

RDS_BHopSII (для UTF8) или RDS_BHopWsII (для UTF16)

Параметры

Parser(RDS_HOBJECT)
  Идентификатор вспомогательного объекта для разбора текста, ранее созданного функцией rdsSTRCreateTextReader.
Keywords(RDSCSTR*,RDSWCSTR*,RDSXCSTR*)
  Указатель на первый элемент массива указателей на строки (const char* или const wchar_t*, в зависимости от версии функции) ключевых слов. Массив либо завершается элементом NULL, либо число его элементов должно быть указано в параметре WordCount.
WordCount(int)
  Число ключевых слов в массиве Keywords или −1, если массив завершается элементом со значением NULL.
StartId(int)
  Целый идентификатор, который будет присвоен самому первому ключевому слову в массиве Keywords (Keywords[0]). Каждое следующее слово будет иметь идентификатор, на единицу больший предыдущего.

Возвращаемое значение

TRUE – ключевые слова добавлены в объект, FALSE – ошибка (Parser не является объектом разбора текста или один из идентификаторов совпал с уже использующимся в объекте).

Примечания

Эта функция добавляет во внутренний набор ключевых слов объекта Parser ключевые слова из массива Keywords и присваивает им последовательные идентификаторы начиная с StartId. Если при извлечении слов из произвольного текста функцией rdsSTRGetWord слово совпадет с одним из элементов массива Keywords, объект вернет вызвавшей программе соответствующее этому слову значение идентификатора.

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

      const char *words[]={"alpha","beta","gamma",NULL};
      RDS_HOBJECT obj=rdsSTRCreateTextReader(TRUE);
      rdsSTRAddKeywordsArrayA(obj,words,-1,100);

слово «alpha» получит идентификатор 100, слово «beta» – 101, слово «gamma» – 102.

Пример

Пример использования функции rdsSTRAddKeywordsArray приведен в §2.8.4 руководства программиста.

См. также

rdsSTRCreateTextReader, rdsSTRAddKeyword, rdsSTRGetWord.