Пишем программу для создания книг FB2 | страница 5
// начало кода
if (CurStyle <> oldStyle) and (CurStyle <> Auth) then
begin
case oldStyle of // завершение предыдущего блока
Poem: OutList.Add('');
Epig: OutList.Add('');
Citat: OutList.Add('');
end; // case завершение предыдущего блока
end;
// конец кода
Но как Вы увидите в исходнике последний программный кусок находится выше предыдущего (и вообще все немного не так), но в данном тексте, мне пришлось расположить их так для последовательного, логичного объяснения, а в программе: сначала проверяется завершенность предыдущих блоков, затем при необходимости начинается другой, а затем обрабатываем текущий стиль.
В данном сочинении, я часто буду пользоваться таким приемом, отступлением от порядка следования текста в исходнике, что делать, человеческая логика и машинная не совсем совпадают.
Если Вы внимательно следите за процессом, то заметили " and (CurStyle <> Auth) " в предыдущем кусочке о начале блока, я это дело опустил, что бы не затуманивать описание.
Это достаточно забавный код призван выполнить требования формата:
// начало цитаты
Внутри тэгов
// конец цитаты
А теперь как это я сделал.
// начало кода
Auth: begin
OutList.Add('
if oldStyle in [Poem, Epig, Citat]
then CurStyle:= oldStyle;
// т. е. корректно отработается закрытие родительских блоков
end;
// конец кода
Т.к. естественно я сделаю эту брошюрку с помощью своей программки. Опробуем вышеизложенные методы форматирования на следующем оптимистичном стихотворении.
Аполлон Майков
Структура
Теперь, после лирического отступления, самое интересное: структурирование книги.
Книга может иметь разделение на части, главы, тома и книги, ну мало ли чего придумает автор…