Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.11. Разбор текста
Описываются функции, служащие для разбора текста и поиска в нем ключевых слов. Для этой цели могут также использоваться вспомогательные объекты, создаваемые функциями rdsSTRCreateTextReader, rdsINICreateTextHolder и rdsCSVCreate.
А.5.11.1. rdsFontTextToStruct – разбор описания шрифта
Функция rdsFontTextToStruct считывает из переданной в параметрах строки описание шрифта и записывает его в указанную структуру. Строка должна иметь кодировку UTF8.
BOOL RDSCALL rdsFontTextToStruct( RDSCSTR Start, // Начало текста (UTF8) RDSCSTR *pNextWord, // Возврат – конец описания (UTF8) RDS_PSERVFONTPARAMS pStr // Заполняемая структура );
Тип указателя на эту функцию
RDS_BSpSpFs
Параметры
- Start (RDSCSTR)
- Указатель (char*) на начало текста описания шрифта. Пробелы и табуляции в начале текста будут пропущены.
- pNextWord (RDSCSTR*)
- Указатель на переменную типа char*, в которую будет записан указатель на начало первого слова строки Start, которое не относится к описанию шрифта. Если вызывающей программе не нужно знать, где кончается описание шрифта, в этом параметре можно передать NULL.
- pStr (RDS_PSERVFONTPARAMS)
- Указатель на структуру описания шрифта RDS_SERVFONTPARAMS в которую функция запишет считанные из строки значения.
Возвращаемое значение
TRUE, если в описании шрифта не обнаружено ошибок, FALSE в противном случае.
Примечания
Эта функция двигается по строке, начиная с указателя Start, считывает из нее ключевые слова описания шрифта (те же, что используются в функции rdsWriteFontText) и следующие за ними значения параметров, записывая при этом эти значения в структуру по указателю pStr. Как только функция встретит в строке ключевое слово, не относящееся к словам описания шрифта, она запишет указатель на начало этого слова в переменную по указателю pNextWord и завершит работу.
Чаще всего rdsFontTextToStruct используется как обратная функция к rdsStructToFontTextA для преобразования строки обратно в структуру описания шрифта. Функция автоматически обрабатывает знак продолжения «+», используемый в текстовом формате схем RDS – обнаружив его, она пропускает следующий за ним перевод строки и повторение знака продолжения, считая следующую строку текста продолжением текущей строки.
Функция не поддерживает кодировку UTF16, поскольку текстовые данные блока всегда хранятся и передаются в модель в кодировке UTF8. Если необходимо считать описание шрифта из строки в UTF16, необходимо предварительно преобразовать ее функцией rdsUTF16toUTF8.
Пример
Пример использования функции приведен в §2.10.1 руководства программиста.
См. также
RDS_SERVFONTPARAMS, rdsStructToFontText, rdsWriteFontText, rdsReadFontText.