Юрий Карпов - Пишем программу для создания книг FB2.
('antique_ant', 'Античная литература'),
('antique_east', 'Древневосточная литература'),
('antique_russian', 'Древнерусская литература'),
('antique_european', 'Европейская старинная литература'),
('antique_myths', 'Мифы. Легенды. Эпос'),
('antique', 'Старинная литература'),
//Техника
('sci_metal', 'Металлургия'),
('sci_radio', 'Радиоэлектроника'),
('sci_build', 'Строительство и сопромат'),
('sci_transport', 'Транспорт и авиация'),
//Фантастика
('sf_history', 'Альтернативная история'),
('sf_action', 'Боевая фантастика'),
('sf_heroic', 'Героическая фантастика'),
('sf_fantasy_city', 'Городское фэнтези'),
('sf_detective', 'Детективная фантастика'),
('sf_cyberpunk', 'Киберпанк'),
('sf_space', 'Космическая фантастика'),
('sf', 'Научная Фантастика'),
('sf_postapocalyptic', 'Постапокалипсис'),
('sf_social', 'Социально-психологическая фантастика'),
('sf_horror', 'Ужасы и Мистика'),
('sf_fantasy', 'Фэнтези'),
('sf_epic', 'Эпическая фантастика'),
('sf_humor', 'Юмористическая фантастика'),
//Юмор
('humor_anecdote', 'Анекдоты'),
('humor', 'Юмор'),
('humor_prose', 'Юмористическая проза'),
('humor_verse', 'Юмористические стихи')
);
maxI = 18;
LI: array[0..maxI] of integer = (
0, // Деловая литература
16, // Детективы и Триллеры
28, // Детское
36,// Документальная литература
42, //Домоводство
52, // Компьютеры и Интернет
60, // Любовные романы
67, // Наука, Образование
93, // Периодика
94, //Поэзия, Драматургия
96, // Приключения
106,// Проза
111,// Прочее
113, //Религия и духовность
118, //Справочная литература
124, //Старинное
130,//Техника
134, //Фантастика
147 //Юмор
);
maxL = 23;
Lg: array[0..maxL] of gr = (
('', ''),
('en', 'Английский'),
('be', 'Белорусский'),
('bg', 'Болгарский'),
('hu', 'Венгерский'),
('nl', 'Голландский'),
('el', 'Греческий современный (1453-)'),
('da', 'Данийский'),
('grc', 'Древнегреческий (до 1453)'),
('he', 'Иврит'),
('it', 'Итальянский'),
('de', 'Немецкий'),
('pl', 'Польский'),
('pt', 'Португальский'),
('ru', 'Русский'),
('sk', 'Словакский'),
('sl', 'Словенский'),
('tr', 'Турецкий'),
('uk', 'Украинский'),
('fi', 'Финский'),
('fr', 'Французский'),
('cs', 'Чешский'),
('et', 'Эстонский'),
('ja', 'Японский')
);
implementation
end.
// конец кода
А это - файл проекта
my_FB2.dpr
// начало кода
program my_FB2;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
genres in 'genres.pas' {Form3},
authors in 'authors.pas' {Form2},
EditStr in 'EditStr.pas' {EditSt};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TEditSt, EditSt);
Application.Run;
end.
// конец кода
Попробовал выполнить собственные инструкции, оказалось забыл еще один файл. А так ничего, "поругался" Дельфи на отсутствие ресурсного файла, да ничего он сам его сделает. А забытый, вот он:
UmFB2.pas
// начало кода
unit UmFB2;
interface
uses
Classes, SysUtils, Dialogs;
Type
TmyStyle = (
Norm, Epig, Auth, Sub, Poem, Citat, None,
ZZ, // пустой тип
H1, H2, H3, H4, H5 );
var
SytleStack : TList;
// StyleList : TList;
OutList : TStringList;
EndNotes_count: integer;
// Path : string;
function GetStyle(S:string; var m:TmyStyle):string;
function GetStr(S:string):string;
procedure PrintString(St, E : string);
implementation
procedure PrintString(St, E : string);
begin
if E <> '' then
OutList.Add(' <'+St+'>'+E +'</'+St+'>');
end;
function GetStyle(S:string; var m:TmyStyle):string;
var
n : byte;
ss : string;
begin
n := pos('|', S);
ss := copy(s,1,n-1); // стиль
case ss[length(ss)] of
'N' : m := Norm;
'E' : m := Epig;
'A' : m := Auth;
'1' : m := H1;
'2' : m := H2;
'3' : m := H3;
'4' : m := H4;
'5' : m := H5;
'S' : m := Sub;
'P' : m := Poem;
'C' : m := Citat;
'-' : m := None;
end;// case
delete(s,1,n+1); // текст
result := S;
end;
function GetStr(S:string):string;
var
n : byte;
begin
n := pos('|', S);
delete(s,1,n+1); // текст
result := S;
end;
BEGIN
SytleStack := TList.create;
OutList := TStringList.Create;
// StyleList := TList.Create;
END.
// конец кода
Ну вот и весь исходник.
Успехов.
w_cat.
Примечания
1
Эти стихи, не имеют никакого отношения к теме. Ну просто, они мне нравятся.