Статья: Документация на основе RTF-шаблона
В качестве управляющих символов используются отдельные буквы. Перед каждым управляющим символом вводится обратная косая черта (\). Например, фрагмент:
…\f1\fs20…
устанавливает шрифт № 1 размером в 20 единиц.
Фрагмент RTF-файла приведен ниже. Структура его, как можно видеть, напоминает структуру HTML-документа:
\intbl\phmrg\posy371\dxfrtext180\dfrmtxtx180\dfrmtxty0\nowrap
\aspalpha\aspnum\faauto\adjustright\rin0\lin0\f1\fs20\lang1049
\langfe1049\cgrid\langnp1049\langfenp1049{\lang1033\langfe1049
\langnp1033 11\cell 12\cell 13\cell} \pard \ql \li0\ri0\widctlpar\intbl
\aspalpha\aspnum\faauto\adjustright\rin0\lin0
В RTF-формате существует возможность объединять отдельные последовательности в группы при помощи скобок:
{группа}
Такие группы создаются, например, при описании сносок, колонтитулов, закладок и т.п.
Вот некоторые управляющие слова и символы, имеющие непосредственное отношение к теме нашей статьи:
\раr - конец абзаца;
\сеll - конец столбца;
\row - конец строки (или таблицы);
\*\bkmkstart <название закладки> \*\bkmkend - закладка. Пример: {\*\bkmkstart ndoc} BS190{\*\bkmkend ndoc};
\pard - устанавливает стандартную настройку для абзаца;
\intbl … \intbl - выделяет область таблицы;
\' - прямой ввод в текст шестнадцатеричных чисел. При сохранении кириллического текста он обычно сохраняется в шестнадцатеричной форме, например:
\'d1\'f2\'f0\'ee\'ea\'e0 ('строка')
Поскольку нас интересуют только определенные задачи, знания приведенных выше управляющих слов и символов вполне достаточно. Условимся для простоты называть управляющие слова и символы тегами.
А теперь рассмотрим алгоритмы решения трех основных задач, возникающих при создании документации.
Вставка строки на месте закладки
Пример такой закладки:
…{\*\bkmkstart ndoc}<значение закладки>{\*\bkmkend ndoc}…
Для решения данной задачи можно предложить следующий алгоритм.
Читаем последовательно строки входного файла (в большинстве случаев строка больше 255 символов).
Ищем в текущей строке тег '\bkmkstart'.