Мне интереснее, совершенствование программы. Представьте ситуацию, Вы делаете 10 книг (или 100) одного автора и каждый раз делая новую книгу, заполняете опять и опять данные об этом человеке. Мне было бы лень. Ваши предложения?…

Ну хорошо мы заполнили и Title-info и Document-info и Publish-info.

Давайте-ка глянем, что там в коде записи файла FB2.

// начало кода

Procedure Make_fb2(S: string);

begin //

if Form1.ListBox1.Items.Count = 0 then exit;

SytleStack.Clear; // подготовка стека стилей

OutList.Clear; // подготовка выходного списка

SaveDescription;

SaveBodyFB2; // это мы уже в общем рассмотрели

SaveEndnotes;

OutList.Add(''); // закрываем книгу

OutList.SaveToFile(S); // Запись в файл

showMessage('Done.'); // Сообщаем об удачном завершении

end;

// конец кода

Как видите мы еще не рассмотрели две процедуры.

// начало кода

procedure SaveDescription;

const

max = 5; // может я захочу изменить число строк в массиве, тогда я изменю только одну цифру

mas: array[1.. max] of string =

(// массив для заголовочной части FB2 файла

'', // как видите я делаю файл в кодировке Win

// я не вижу смысла в применении юникода, но если речь идет не о русском языке,

// то сделайте здесь изменение.

'

' xmlns: l=«http://www.w3.org/1999/xlink» >',

' ',

' '

);

var i: byte;

begin

// Выводим в выходной файл начало FB2 файла

for i:= 1 to max do

OutList.Add(Mas[i]);

// конец кода

Дальше просматриваем списки Жанров, Автором и Переводчиков и выводим оттуда информацию (если она там есть).

Т.е. проверяем все заполненные поля форм описывающих книгу и выводим информацию в соответствующие секции заголовка книги.

Будем считать, что с Description – покончили.

Осталось только

// начало кода

procedure SaveEndnotes;

var

S: string;

i: integer;

begin

if Form1.EndNotesList.Items.Count = 0 then exit;

OutList.Add('<p>Примечания</p>');

for i:= 0 to Form1.EndNotesList.Items.Count – 1 do

begin

S:= Form1.EndNotesList.Items[i];

OutList.Add('<p>'+IntToStr(i+1)+'</p>');

OutList.Add('

'+S+'

');

OutList.Add('');

end;

OutList.Add('

Перейти на страницу:

Похожие книги