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

Описания RDS

Приложения

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

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

А.5.11. Разбор текста

А.5.11.4. rdsReadColorText – разбор описания цвета

# Приложения

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

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

#### А.5.11. Разбор текста

##### А.5.11.4. rdsReadColorText – разбор описания цвета

Функция rdsReadColorText считывает из переданной в параметрах строки описание цвета и возвращает считанное значение типа COLORREF. Строка должна иметь кодировку UTF8.

      COLORREF RDSCALL rdsReadColorText(
        RDSCSTR Start,       // Начало текста (UTF8)
        RDSCSTR *pNextWord,  // Возврат – следующее слово (UTF8)
      );

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

RDS_CrSpS

Параметры

Start(RDSCSTR)
  Указатель на начало текста, из которого нужно извлечь описание цвета. Все пробелы и табуляции перед описанием будут пропущены.
pNextWord(RDSCSTR*)
  Указатель на переменную типа char*, в которую будет записан указатель на начало следующего после описания цвета слова. Если вызывающей программе оно не нужно, в этом параметре можно передать NULL.

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

Считанное из текста значение цвета в виде целого числа (тип COLORREF). Если текст не соответствует формату описания цвета, возвращается нулевое значение (оно соответствует черному цвету).

Примечания

Эта функция разбирает текстовое описание цвета в том же формате, который используется в функции rdsWriteColorText. Сначала она извлекает из текста, указатель на который передан в параметре Start, первое слово. Если это слово «rgb», она считывает следующие за ним три слова, преобразует их в целые числа тем же способом, который используется в функции rdsAtoI, и собирает из этих трех чисел значение цвета, считая их интенсивностями его красного, зеленого и синего компонентов (каждое из трех целых чисел может принимать значения в интервале 0…255). В противном случае, то есть если первое слово в тексте по указателю Start – не «rgb», функция преобразует это слово в целое число и считает его значением цвета, которое нужно вернуть. По указателю pNextWord функция записывает указатель на следующее после описания цвета слово, то есть указатель на следующее слово после считанного числа, если цвет был представлен числом, или указатель на слово, следующее за значением синего компонента, если цвет описывается словом «rgb» и тремя интенсивностями компонентов.

Функция rdsReadColorText автоматически обрабатывает знак продолжения «+», используемый в текстовом формате схем RDS – обнаружив его, она пропускает следующий за ним перевод строки и повторение знака продолжения, считая следующую строку текста продолжением текущей строки.

Функция не поддерживает кодировку UTF16, поскольку текстовые данные блока всегда хранятся и передаются в модель в кодировке UTF8. Если необходимо считать описание цвета из строки в UTF16, необходимо предварительно преобразовать ее функцией rdsUTF16toUTF8.

См. также

rdsWriteColorText, rdsAtoI, RDS_BFM_LOADTXT.