Текст книги "Пишем программу для создания книг FB2 (СИ)"
Автор книги: Юрий Карпов
Жанр:
Программное обеспечение
сообщить о нарушении
Текущая страница: 3 (всего у книги 3 страниц)
// Периодика
('periodic', 'Журналы'),
//Поэзия, Драматургия
('dramaturgy', 'Драматургия'),
('poetry', 'Поэзия'),
// Приключения
('adv_western', 'Вестерн'),
('adv_history', 'Исторические приключения'),
('adv_maritime', 'Морские приключения'),
('adventure', 'Приключения'),
('adv_indian', 'Приключения про индейцев'),
('adv_animal', 'Природа и животные'),
('adv_geo', 'Путешествия и география'),
// Проза
('prose_history', 'Историческая проза'),
('prose_classic', 'Классическая проза'),
('prose_counter', 'Контркультура'),
('prose_military', 'О войне'),
('prose', 'Проза'),
('prose_rus_classic', 'Русская классическая проза'),
('prose_su_classics', 'Советская классическая проза'),
('prose_contemporary', 'Современная проза'),
// Прочее
('other', 'Неотсортированное'),
('notes', 'Партитуры'),
//Религия и духовность
('religion_budda', 'Буддизм'),
('religion', 'Религиозная литература'),
('religion_rel', 'Религия'),
('religion_self', 'Самосовершенствование'),
('religion_esoterics', 'Эзотерика'),
//Справочная литература
('geo_guides', 'Путеводители'),
('ref_guide', 'Руководства'),
('ref_dict', 'Словари'),
('reference', 'Справочная литература'),
('ref_ref', 'Справочники'),
('ref_encyc', 'Энциклопедии'),
//Старинное
('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.
notes
Примечания
1
Эти стихи, не имеют никакого отношения к теме. Ну просто, они мне нравятся.