Пишем программу для создания книг FB2 - [5]

Шрифт
Интервал

Программа должна уметь не только создавать, но и читать файл FB2. Тогда можно растягивать удовольствие изготовления книги на несколько дней, и не потребуется каждый раз заново: читать текстовый файл, расставлять стили, форматировать строки и т. д. и все это с одной и той же книгой - ужас.

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


Связаться со мной Вы сможете по адресу [email protected] (обратите внимание, 2 подчеркивания, т. к. [email protected] оказался уже занят). Предупреждаю сразу, я ленив, почту смотрю не каждый день, да и отвечать всем может и не смогу (я же не знаю сколько найдется желающих мне написать). Второе, эту почту я специально завел для этой программки, и если Вы, друзья мои завалите ее спамом или матом, я просто забуду туда дорогу.


Лицензионные условия таковы, пользуйтесь на здоровье, копируйте, переделывайте, если сможете заработать на этом деньги, буду только рад.


Карпов Юрий.

Кохтла-Ярве.

2010.


Итак.

Продолжение следует…

Приложение

Исходный код программы.

Выложил исходник на один сайт, но боюсь, что там ему и потерянному быть…

Поэтому, не буду ждать милости, справимся и сами.

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


«Нет таких задач, которые не могли бы решить комму… (извиняюсь) программисты!»


Сделаем копию этого файла. Переименуем его как текст. В этом тексте найдем слово «Приложение». Удалим все до этого слова, да и немного далее, до начала исходного текста.

Теперь заменим все

и

на пустое место.

Еще заменим:

на пустое место.

& на &

< на <

> на >

«Цели определены, задачи поставлены, за работу товарищи…»



Программа состоит из 4 форм и 6 файлов pas, всего около 50 кбайт.

Далее, последует инструкция, как сделать программку.

Если Delphi 5 и выше то все просто.

Получившийся пирожок, нужно разрезать на отдельные файлы и назвать так как они подписаны

И запустить проект.


Иначе придется повозится.

В новой папочке создайте пустой проект Delphi.


На форме кликните правой кнопкой мыши и выберите View as Text

Скопируйте код формы из книги (не захватывая слова "начало кода" и "конец кода"). Вставьте его в открытое окно. Нажмите правую кнопку мыши и выберите View as Form. Если все сделано правильно Вы увидите форму.

Скопируйте код соответствующего unit. Замените им код в окне Code.

Хорошо, одна форма сделана.


Теперь создайте новую форму File - New - Form

И повторите предыдущие операции

Форм и соответствующих им Юнитов нужно сделать 4:

Unit1.dfm, genres.dfm, EditStr.dfm, authors.dfm

Unit1.pas, genres.pas, EditStr.pas, authors.pas

Файлы UmFB2.pas и dm.pas форм не имеют т.е. просто сделайте их из текстовых.


Итак, начали.

Unit1.dfm

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

object Form1: TForm1

Left = 187

Top = 98

Width = 722

Height = 463

Caption = 'Form1'

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

Menu = MainMenu1

OldCreateOrder = False

OnCreate = FormCreate

PixelsPerInch = 96

TextHeight = 13

object PageControl1: TPageControl

Left = 0

Top = 0

Width = 714

Height = 417

ActivePage = TabSheet2

Align = alClient

TabIndex = 3

TabOrder = 0

object TabSheet1: TTabSheet

Caption = 'title-info'

object Annotation: TMemo

Left = 0

Top = 273

Width = 706

Height = 116

Align = alClient

ScrollBars = ssVertical

TabOrder = 0

WordWrap = False

end

object Panel3: TPanel

Left = 0

Top = 0

Width = 706

Height = 273

Align = alTop

BevelOuter = bvNone

TabOrder = 1

object Lbook_title: TLabel

Left = 8

Top = 64

Width = 43

Height = 13

Caption = 'book-title'

end

object LProject: TLabel

Left = 8

Top = 8

Width = 36

Height = 13

Caption = 'Project:'

end

object LAnnotation: TLabel

Left = 16

Top = 240

Width = 51

Height = 13

Caption = 'Annotation'

end

object Lsequence: TLabel

Left = 16

Top = 176

Width = 49

Height = 13

Caption = 'Sequence'

end

object LLang: TLabel

Left = 376

Top = 176

Width = 27

Height = 13

Caption = 'Lang.'

end

object Lsrc_lang: TLabel

Left = 456

Top = 176

Width = 49

Height = 13

Caption = 'Src. Lang.'

end

object LTome: TLabel

Left = 200

Top = 176

Width = 27

Height = 13

Caption = 'Tome'

end

object book_title: TEdit

Left = 64

Top = 56

Width = 217

Height = 21

TabOrder = 0

end

object FB2_file: TEdit

Left = 8

Top = 24

Width = 273

Height = 21

TabOrder = 1

end

object Au: TGroupBox

Left = 296

Top = 8

Width = 185

Height = 153

Caption = ' Authors '

TabOrder = 2

object ListBox3: TListBox

Left = 8

Top = 15

Width = 169

Height = 106

ItemHeight = 13

TabOrder = 0

end

object Button10: TButton

Left = 152

Top = 124

Width = 25

Height = 25

Caption = '...'

TabOrder = 1

OnClick = Button10Click

end

end

object GroupBox1: TGroupBox

Left = 8

Top = 88

Width = 273

Height = 73

Caption = ' Genre '

ParentShowHint = False

ShowHint = False

TabOrder = 3

object GenresBox: TListBox

Left = 8

Top = 15

Width = 225

Height = 50

ItemHeight = 13

TabOrder = 0

end

object Button4: TButton

Left = 240

Top = 40

Width = 25

Height = 25

Caption = '…'

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -13

Font.Name = 'MS Sans Serif'

Font.Style = []

ParentFont = False

TabOrder = 1

OnClick = Button4Click

end

end

object GroupBox3: TGroupBox


Еще от автора Юрий Карпов
Извлекаем архив из fb2

Книга предназначена студенту, писавшему программы только в качестве курсовых, "сдавшему" Delphi и несмотря на это, желающему стать программистом. Это, не сборник готовых рецептов, автор хочет поставить читателя в условия максимально приближенные к рабочим. Мы вместе напишем программу, пройдя через ошибки, и сомнения к окончательной победе...


Английский по методу w_cat

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


Рекурсия

Книга предназначена студенту, писавшему программы только в качестве курсовых, "сдавшему" Delphi и несмотря на это, желающему стать программистом. Это, не сборник готовых рецептов, автор хочет поставить читателя в условия максимально приближенные к рабочим. Мы вместе напишем программу, пройдя через ошибки, и сомнения к окончательной победе...


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Исчерпывающее руководство по написанию всплывающих подсказок

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


MFC и OpenGL

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


Как функции, не являющиеся методами, улучшают инкапсуляцию

Когда приходится инкапсулировать, то иногда лучше меньше, чем большеЯ начну со следующего утверждения: Если вы пишете функцию, которая может быть выполнена или как метод класса, или быть внешней по отношению к классу, Вы должны предпочесть ее реализацию без использования метода. Такое решение увеличивает инкапсуляцию класса. Когда Вы думаете об использовании инкапсуляции, Вы должны думать том, чтобы не использовать методы.Удивлены? Читайте дальше.


Программное обеспечение встроенных систем. Общие требования к разработке и документированию

Embedded system software. General requirements for development and documentationСтандарт подготовлен в развитие ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств» с целью учета специфики разработки и документирования программного обеспечения встроенных систем реального времени.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.