Пишем программу (в 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