Пишем программу (в Delphi) для создания книг FB2 - страница 6

стр.

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

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

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

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

Карпов Юрий.
Кохтла-Ярве.
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