< -->
Program Html_HREF_Maker;
{$D+,E-,N-,G+}
var
f, ftmp, fr, fhtm : Text;
S, S1 : String;
fname, fresname : String;
Title_On : Boolean;
const
tmpName = 'hhm.tmp';
head1 = '<html> <head> <title></title>';
charset = '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">';
StyBg = '<STYLE type=text/css>';
epi = '.epigraph {TEXT-ALIGN: right; FONT-STYLE:ITALIC; FONT-SIZE: 8pt}';
deflt = '.default {FONT-SIZE: 12pt}';
sm = '.small {FONT-SIZE: 10pt}';
smst = '.smallest {FONT-SIZE: 8pt}';
h1 = 'H1 {TEXT-ALIGN: center}';
h2 = 'H2 {TEXT-ALIGN: center}';
h3 = 'H3 {TEXT-ALIGN: left}';
_P_ = 'P {TEXT-INDENT: 3em; TEXT-ALIGN: justify}';
StyEnd = '</STYLE>';
meta_ = '<META http-equiv=Content-Type content="text/html"></head>';
body = '<body bgcolor=#614349 link=#6262FF vlink=#3CDBBF>';
_div_ = '<div class=Section1><div align=center>';
table = '<table border=0 cellspacing=0 cellpadding=0 width=80%>';
_tr_ = '<tr><td valign=top><br><font size=2 face="Courier" color=#00FF00>';
Instr = '<a href="';
Clstr = '">';
ClTag = '</a>';
_BR_ = '<br>';
Cl1 = '</p><br><div align=right>Shyar 2003 / Shurik Okrugin - А.Округин<div align=justify><br>';
Cl2 = '</td></tr></table></div></body></html>';
Function UpString(Sra : String) : String;
var
i : Byte;
Sr : String;
begin
Sr := Sra;
for i := 1 to Length(Sr) do
Sr[i] := UpCase(Sr[i]);
UpString := Sr
end;
Function GetTitle(S_ : String) : String;
var
tmpS, Sr, S1_ : String;
C : Char;
fl : Boolean;
ps : Byte;
begin
fl := false;
Sr := '';
Assign(fhtm, S_);
{$I-}
Reset(fhtm);
{$I+}
if IOResult = 0 then
begin
While not fl and not EOF(fhtm) do
begin
ReadLn(fhtm, tmpS);
S1_ := UpString(tmpS);
ps := Pos('<TITLE', S1_);
if ps<>0 then
begin
fl := True;
Delete(tmpS, 1, ps);
Delete(tmpS, 1, Pos('>', tmpS));
S1_ := UpString(tmpS);
ps := Pos('</TITLE', S1_);
if ps<>0 then
Delete(tmpS, ps, Length(tmpS)-ps+1);
Sr := tmpS;
end;
end;
Close(fhtm);
end;
if Sr <> '' then
GetTitle := Sr
else
GetTitle := S_;
end;
begin
Title_On := False;
if ParamCount<1 then
begin
WriteLn('====-===-=====-=============-===-=====-=========');
WriteLn('HTML/HTM 2HREF Convertor');
WriteLn('====-===-=====-=============-===-=====-=========');
WriteLn(' Укажите имя txt/htm/html-файла, содержащего текстовые сноски в виде');
WriteLn('<br>[сноска=только имя] или <BR>[сноска=только имя] в командной строке');
WriteLn;
WriteLn('Примечание: Тег <br> в htm/html-файле должен находиться в начале строки.');
WriteLn('====-===-=====-=============-===-=====-=========');
WriteLn('hhm [in] [<out>|</R>] </TITLE>');
Halt($FFFF);
end;
fname := ParamStr(1);
if ParamCount<2 then
begin
Write('Введите имя конечного файла: ');
ReadLn(fresname);
end else fresname := ParamStr(2);
if UpString(fresname)='/R'{ewrite} then fresname := fname;
if ParamCount>2 then Title_On := (UpString(ParamStr(3))='/TITLE') or (UpString(fresname)='/TITLE');
Write('Обрабатывается файл '+fname+'>>'+fresname);
if Title_On then WriteLn(' [Читать заголовки]') else WriteLn;
Assign(f, fname);
Assign(fr, fresname);
Assign(ftmp, tmpName);
Reset(f);
Rewrite(ftmp);
if UpString(Copy(fname, Pos('.', fname)+1, 3)) = 'HTM' then
While not EOF(f) do
begin
ReadLn(f, S);
if UpString(S[1]+S[2]+S[3]+S[4])='<BR>' then
begin
S1 := Copy(S, 1, 4);
Delete(S, 1, 4);
Write(ftmp, S1+Instr);
Write(ftmp, S+Clstr);
WriteLn(ftmp, S+ClTag);
end else WriteLn(ftmp, S);
end
else
begin
WriteLn(ftmp, head1);
WriteLn(ftmp, charset);
WriteLn(ftmp, StyBg);
WriteLn(ftmp, epi);
WriteLn(ftmp, deflt);
WriteLn(ftmp, sm);
WriteLn(ftmp, smst);
WriteLn(ftmp, h1);
WriteLn(ftmp, h2);
WriteLn(ftmp, h3);
WriteLn(ftmp, _P_);
WriteLn(ftmp, StyEnd);
WriteLn(ftmp, meta_);
WriteLn(ftmp, body);
WriteLn(ftmp, _div_);
WriteLn(ftmp, table);
WriteLn(ftmp, _tr_);
While not EOF(f) do
begin
ReadLn(f, S);
Write(ftmp, _BR_);
Write(ftmp, S1+Instr);
Write(ftmp, S+Clstr);
if Title_On then S := GetTitle(S);
WriteLn(ftmp, S+ClTag);
end;
WriteLn(ftmp, Cl1);
WriteLn(ftmp, Cl2);
end;
Close(ftmp);
Close(f);
{$I-}
Rename(ftmp, fresname);
{$I+}
if IOResult<>0
then
begin
{$I-}
Erase(fr);
Rename(ftmp, fresname);
{$I+}
end;
end.
Назад