Форматы файлов

- Папа, а что означает сообщение "format c: complete"?.

Суровый программистский юмор

ВНИМАНИЕ!!!

Информация этого раздела малость устарела и скоро будет изменена

Форматы файлов экспорта

Экспорт пакета вопросов в различные форматы выполняется в соответствии со специальными файлами-шаблонами экспорта. Эти файлы находятся в подкаталоге templates каталога данных программы (для версии Windows - это каталог, в котором находится исполняемый файл, для версии *nix каталог задается при компиляции, по умолчанию - /usr/local/share/quested).

Шаблон экспорта - это обычный текстовый файл, состоящий из трех секций:

  1. Секции информации о шаблоне
  2. Секции ключевых слов
  3. Секции шаблона

Секция информации о шаблоне

Первая секция содержит информацию о шаблоне, которая появится в пункте меню "Экспорт". Она представляет собой набор строк следущего содержания:

  1. Короткое описание (появится как пункт меню)
  2. Длинное описание (подсказка к пункту меню)
  3. Название файла, в котором будет сохранен пакет (для диалога открытия файла)
  4. Расширение имени файла без лидирующей точки (.)
  5. Кодовая страница шаблона
  6. Резервная строка (для будущего использования)
  7. Резервная строка (для будущего использования)

Секция ключевых слов

Вторая секция определяет то, как будут представляться текст вопроса, ответ, комментарии, информация об авторе и источник вопроса. Эта секция также представляет собой набор строк:

  1. Строка, задающая команду перехода на новую строку (например, для html - это <br>)
  2. Строка, задающая команду перехода на новый абзац
  3. Строка описания вопроса
  4. Строка описания ответа
  5. Строка описания информации об авторе
  6. Строка описания комментариев
  7. Строка описания источника вопроса

Команда перехода на новую строку добавляется к каждой строке текста вопроса и комментариев. Если в этом нет необходимости, строку следует оставить пустой.

Во второй и третьей секциях могут использоваться метасимволы, которые при экспорте заменяются на другие последовательности символов. Метасимвол - это знак процента (%), за которым идет дополнительный символ. Регистр (размер буквы) в метасимволах имеет значение. Для вставки в текст просто символа процента надо просто дважды его написать.

В команде перехода на новую строку может использоваться метасимвол %l, который заменяется на символ перевода строки ('\n'). В строке, определяющей представление вопроса может использоваться метасимвол %d, котрый заменяется на номер вопроса в туре. Во всех строках второй секции кроме первой строки метасимвол %l заменяется на команду перехода на новую строку, а метасимвол %t на текст соответствующего блока информации. Например, для описания вопроса - собственно текст вопроса, для строки описания ответа - ответ и т.д.

Секция шаблона

Шаблон представляет собой набор символов и метасимволов. Метасимволы %= начинают и заканчивают блок шаблона, описывающего один тур. Метасимволы %# начинают и заканчивают блок шаблона, описывающего один вопрос. Таблица 1 содержит сводную информацию о метасимволах:

Табл. 1. Метасимволы шаблона экспорта
СимволСокровенный смысл
Метасимволы общего назначения
%lСимвол перевода строки в команде перехода на новую строку
%lКоманда перехода на новую строку
%=Начало и конец блока шаблона описания тура
%#Начало и конец блок шаблона описания одного вопроса
Метасимволы заголовка турнира
%TНазвание турнира
%DОписание турнира
%EРедактор (человек, а не программа) пакета вопросов
%AДата проведения турнира
Метасимволы блока ключевых слов
%dНомер вопроса
%tТескт соответствующего блока информации
Метасимволы блока тура
%NНомер тура
Метасимволы блока вопроса
%qТекст вопроса
%aОтвет
%uАвтор вопроса
%cКомментарии
%sИсточник

Ниже представлен шаблон для экспорта в html:

html
Турнир в виде html
Документ HTML
html
koi8-r


%l
<p><b>Вопрос %d</b>%l%t</p>
<b>Ответ: </b>%t<br>%l
<b>Автор: </b>%t<br>%l
<b>Комментарии:</b><br>%l%t<br>
<b>Источник:</b>%t<br>%l
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<title>чтогдекогда</title>
</head>
<body>
<div align="center"><h1>ТУРНИР</h1><h2>%T</h2>%D</div>
<div align="center">Дата проведения %A</div>
%=
<div align="center"><h2>Тур %N</h2></div>
%#
%q
<p>%a%u%s%c</p>
%#
%=
</body>
</html>
				

Форматы файла пакета вопросов

  1. Сигнатура - слово ЧГК
  2. Название турнира
  3. Описание турнира
  4. Редактор пакета вопросов
  5. дата проведения турнира
  6. Общее число вопросов в турнире
  7. Число вопросов в одном туре
  8. Резервная строка
  9. Описание вопросов

Описание вопросов:

  1. Число строк в тексте вопроса
  2. Строки вопроса
  3. Ответ
  4. Автор
  5. Число строк в комментариях
  6. Строки комментариев
  7. Источник
  8. Зарезервированная строка