Юрий Карпов - Пишем программу для создания книг FB2.

Здесь есть возможность читать онлайн «Юрий Карпов - Пишем программу для создания книг FB2.» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Пишем программу для создания книг FB2.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Пишем программу для создания книг FB2.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Подробный комментарий к исходному коду программы создающей книжку в формате FB2.

Пишем программу для создания книг FB2. — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Пишем программу для создания книг FB2.», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

begin // записываем стиль в стек

SytleStack.Add(TObject(CurStyle))

end

else // если в стеке что-то есть

begin // значит надо проверить последний из заголовков

LastStyle:= TmyStyle(SytleStack.Last); // считываем последний стиль

case SubStyle(CurStyle, LastStyle) of // вычисляем разность текущий стиль минус последний

0: OutList.Add('

'); // стили равны, ничего особенного делать не надо

1: SytleStack.Add(TObject(CurStyle)); // новый стиль больше, добавляем его в стек

// предыдущая секция не закончилась, т. к. новая будет в ее входить как матрешка

else // иначе, считаем что разность меньше нуля

begin

OutList.Add('');

while CurStyle <>LastStyle do

begin

SytleStack.Delete(SytleStack.Count-1); // уменьшаем стек

OutList.Add(''); // завершаем секции до тех пор пока

LastStyle:= TmyStyle(SytleStack.Last); // текущий стиль и стиль в стеке не сравняются.

end;

end;

end;// case

end;

OutList.Add('

'); // начинаем новую секцию

OutList.Add('

end;

OutList.Add('

'+s+'

'); // записываем заголовок секции

end; // StyleStucture;

// конец кода

Пожалуй, это самый тяжелый код в данном манускрипте, но он вроде работает, хотя я вижу в нем по крайней мере две неувязки, но что это, не скажу…

Ну вот с обработкой книги почти закончили, мелкие подробности увидите в исходнике.

Нажимаем пункт меню File - Save as FB2.

И - ничего не получается. Запланированная шутка. Вылезла надпись "Заполнить поля" и фокус перенаправлен на начальную закладку.

Напоминаю FB2 - это не только легкоусвояемый (легкоусваиваемый) текст, но и очень нужный и полезный заголовок книги.

Давайте посмотрим, все таки, что происходит при выборе пункта Save as FB2

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

procedure TForm1.SaveasFB21Click(Sender: TObject);

begin

if not BookHaveName then // проверяем, все ли в порядке в заголовке

begin // если нет, то происходит все то что Вы видели

PageControl1.ActivePageIndex:= 0;

ShowMessage('Fill the form.');

exit;

end;

SaveDialog1.FileName:= form1.FB2_file.Text;

if SaveDialog1.Execute then

Make_fb2(SaveDialog1.FileName);

end;

// конец кода

Посмотрим на процедуру BookHaveName

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

function BookHaveName: boolean;

begin

with Form1 do

result:= (book_title.Text <> '') and

(FB2_file.Text <> '') and

(GenresBox.Count > 0);

end;

// конец кода

Ничего особенного в этой функции нет. Единственно из-за чего я ее вытащил, это сказать, что Вы можете и скорее даже будете вынуждены, как-то изменить ее, чтобы контроль заполнения заголовка книги был более разумным.

А я пока вернусь к заполнению заголовка.

В программе Вы видите три закладки Title-info, Document-info и Publish-info. В формате FB2 есть еще кое-что, но я пока это игнорировал. Предоставляю Вам такую возможность. Код Вам в руки…

Итак Title-info

Поле Project - само заполнится при открытии текстового файла. При желании, Вы можете изменить, имя сохраняемого fb2 файла.

Поле book-title действительно обязательно надо заполнить

Теперь Genre - Жанр.

Ага, тут немного интереснее, есть о чем погуторить.

Нажимаем кнопку с тремя точками.

И открывается окошко Жанры.

Наша цель добавить один или несколько жанров в левый ListBox.

Выберите подходящий жанр в правом ListBoxсике и нажмите кнопку Add

В навигации по жанрам поможет верхний ComboBox

О коде в этом unit мне говорить лень, ничего особенного, рутина.

Интереснее, вот, что, информация для загрузки в эти Боксики находится в unit dm

Посмотрите на нее, и поругайте мою лень. Дело в том, что я не уверен, что этот список жанров правилен. Второе, этот список, очевидно, не окончателен. А значит он не должен быть жестко зафиксирован в программе.

Значит, так. Вам задание - переписать прогу, чтобы эти списки грузились или из текстового файла или из INI файла.

Вернемся к заполнению заголовка

Нам надо ввести данные об авторе / авторах и переводчике / переводчиках

Так же нажимаем на соответствующую кнопочку с троеточием и работаем в открывшемся окне.

Вы уже наверно заметили, что мне прискучило очень уж подробно расписывать код. Но в данном unit тоже ничего особенного, единственно, пришлось ввести структуру TPerson, я думаю Вы легко разберетесь зачем она мне нужна.

Мне интереснее, совершенствование программы. Представьте ситуацию, Вы делаете 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(''); // закрываем книгу

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Пишем программу для создания книг FB2.»

Представляем Вашему вниманию похожие книги на «Пишем программу для создания книг FB2.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Пишем программу для создания книг FB2.»

Обсуждение, отзывы о книге «Пишем программу для создания книг FB2.» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x