home *** CD-ROM | disk | FTP | other *** search
- program Prevod(input,output);
- uses Fr_sok;
- label konec,preskok;
-
- var f,g:Text;
- kapitola:Byte;
- nedokonceno:Boolean;
- adresar,jmeno:String;
-
- function PocetKap:Word; {P⌐edpokládám, æe f je otev⌐enÿ soubor}
- var s:String;
- pocet,pom:Word;
- f0:Text;
- chyba:Integer;
- kapitola:Byte;
- begin
- UschovejPozici(f); {Zji¿têní a uloæení aktuální pozice ve vstupním souboru}
- pocet:=0;
- while Not(Eof(f)) do
- begin
- Readln(f,s);
- if s[1]='\' then Break;
- if s[1]='@' then
- begin
- s:=Copy(s,2,Length(s));System.Val(s,kapitola,chyba);
- if (chyba=0) and (kapitola>pocet) then begin pocet:=kapitola;end;
- end;
- end;
- ObnovPozici(f); {Nastavení pûvodní pozice ve vstupním souboru}
- PocetKap:=pocet;
- end;
-
- procedure KonecWWWstranky;
- begin
- if nedokonceno=True then
- begin
- Writeln(g,'</A>');nedokonceno:=False;
- end;
- if kapitola>0 then
- begin
- cskod:=3;Writeln(g,'</OL>');Writeln(g);Writeln(g,'<HR>');
- Writeln(g,cs('<A HREF="mailto: sokolovs@troja.fjfi.cvut.cz">Námêty, p⌐ipomínky a dotazy - EMAIL</A>, '));
- Writeln(g,cs('<A HREF="http://www-troja.fjfi.cvut.cz/~sokolovs/">moje WWW stránka</A> a '));
- Writeln(g,cs('<A HREF="http://www-troja.fjfi.cvut.cz/BIBLE/BIBLE.HTM">Bible - çeská verze s odkazy</A>'));
- Writeln(g,'</BODY>');Writeln(g,'</HTML>');Writeln(g);cskod:=1;
- kapitola:=0;Close(g);
- end;
- end;
-
- var i,pocet,vers:Byte;
- nazev,s,zkratka:String;
- chyba0,p1,p2:Integer;
- jmeno2:String;
- komentare:Boolean;
- begin
- Nastav;cskod:=1;Vypni_Zvuk;stav:=Vypnuta;komentare:=False;
- jmeno:='I:\ELBI\BIBLE.BI\BIBLEKR.BI\book.txt';CtiString3('Zadejte soubor book.txt z programu Elbi:',False,False,jmeno);
- adresar:='H:\TMP';CtiString3('Zadejte adresar, kam se ulozi vytvorene WWW stranky:',False,False,adresar);
- if adresar[Length(adresar)]<>'\' then adresar:=adresar+'\';
- Assign(f,jmeno);Reset(f);if (chyba<>0) then Hlaseni('Chyba p⌐i otev⌐ení vstupního souboru.');
- while ((chyba=0) and Not(eof(f))) do
- begin
- {$I-}Readln(f,s);{$I+}chyba:=IOResult;if Length(s)<1 then goto preskok;
- for i:=1 to length(s) do
- begin {Znaky "<" a ">" vadí ve www stránce, proto se nahradí "[" a "]"}
- if s[i]='<' then s[i]:='[';
- if s[i]='>' then s[i]:=']';
- if s[i]='"' then s[i]:=Chr(39); {nahrazení uvozovky apostrofem}
- end;
-
- if s[1]='\' then
- begin
- if komentare=True then
- begin
- komentare:=False;Writeln(g,'<P>');
- end;
- KonecWWWstranky;
- { if AnoNe2('P⌐ejete skonçit?') then goto konec;}
- nazev:=OdstranZbytecneMezery(Copy(s,2,Length(s)-1));
- p1:=Pos('(',nazev);p2:=Pos(')',nazev);
- if ((p1>0) and (p2>0) and (p2>p1)) then
- begin
- zkratka:=Copy(nazev,p1+1,p2-p1-1); {Odstraní se nep⌐ístupné znaky ve jménu souboru}
- zkratka:=Odstran_Hacky_Carky(OdstranZbytecneMezery(Copy(zkratka,1,p1-1)));
- while (Pos('.',zkratka)>0) do System.Delete(zkratka,Pos('.',zkratka),1);
- while (Pos(':',zkratka)>0) do System.Delete(zkratka,Pos(':',zkratka),1);
- while (Pos('/',zkratka)>0) do System.Delete(zkratka,Pos('/',zkratka),1);
- while (Pos('\',zkratka)>0) do System.Delete(zkratka,Pos('\',zkratka),1);
- end else begin
- CtiString3('* * * Mûæete zmênit název kapitoly: * * *',False,False,nazev);
- CtiString3('Zadejte zkratku pro '+nazev,False,False,zkratka);
- end;
- jmeno2:=adresar+Odstran_Hacky_Carky(zkratka)+'.htm';
- Writeln('Vytvá⌐ím soubor '+Odstran_Hacky_Carky(jmeno2)+' ...');
- if Soubor_Existuje(jmeno2) then
- begin
- CtiString3('Zadejte jinou zkratku pro '+nazev+' (jinak bude soubor p⌐emazán)',False,False,zkratka);
- end;
- Assign(g,jmeno2);Rewrite(g);
- if (chyba<>0) then begin Hlaseni('Nepoda⌐ilo se zapsat do souboru '+jmeno2);end;
- cskod:=3;
- Writeln(g,'<HTML>');
- Writeln(g,'<HEAD>');
- Writeln(g,cs(' <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">'));
- Writeln(g,cs(' <meta name="GENERATOR" content="P⌐evádêcí program z Elbi do WWW stránky">'));
- Writeln(g,cs(' <TITLE>'+nazev+'</TITLE>'));
- Writeln(g,'</HEAD>');
-
- Writeln(g,'<BODY>');
- Write(g,cs('<IMG SRC="http://www.navrcholu.cz/cgi-bin/4web/nvhit.pl?id=00000194" WIDTH="0" HEIGHT="0" '));
- Writeln(g,cs('alt="Poçítadlo" border="0">'));
- Writeln(g,'<CENTER>');
- Writeln(g,cs('<P><H2>'+nazev+'</H2><BR>'));
- Writeln(g,'</CENTER><P>');
- Writeln(g);kapitola:=0;
- Writeln(g,'Kapitoly: ');
- pocet:=PocetKap;if pocet<1 then pocet:=Cti_Byte('Zadejte poçet kapitol v '+nazev+' ('+str(pocet)+')');
- for i:=1 to pocet do
- begin
- Write(g,'<A HREF="#'+Str(i)+'">'+Str(i)+'</A>');
- if i<pocet then Write(g,',') else Write(g,'.');
- if (i mod 3)=0 then Writeln(g) else Write(g,' ');
- end;
- Writeln(g,'<P>');Writeln(g);cskod:=1;nedokonceno:=False;goto preskok;
- end;
-
- if s[1]='@' then
- begin
- if komentare=True then
- begin
- komentare:=False;Writeln(g,' <P>');
- end;
- if nedokonceno=True then
- begin
- Writeln(g,'</A>');nedokonceno:=False;
- end;
- if kapitola>0 then
- begin
- Writeln(g,'</OL>');Writeln(g);
- kapitola:=0;
- end;
- cskod:=3;
- s:=Copy(s,2,Length(s));System.Val(s,kapitola,chyba);
- Writeln(g,'<A NAME="'+Str(kapitola)+'"></A>');
- Writeln(g,cs('<OL><H2>'+Str(kapitola)+'.kapitola ('+nazev+')</H2>'));
- cskod:=1;nedokonceno:=False;goto preskok;
- end;
-
- if s[1] in ['1'..'9'] then
- begin
- if nedokonceno=True then
- begin
- Writeln(g,'</A>');nedokonceno:=False;
- end;
- i:=Pos(':',s);
- if i>0 then
- begin
- System.Val(Copy(s,1,i-1),vers,chyba0);
- if chyba=0 then
- begin
- if komentare=True then
- begin
- komentare:=False;Writeln(g,' <P>');
- end;
- Write(g,' <LI><A NAME="'+Str(kapitola)+':'+Str(vers)+'">');
- s:=OdstranZbytecneMezery(Copy(s,i+1,Length(s)));
- nedokonceno:=True;cskod:=3;Write(g,cs(s));cskod:=1;
- goto preskok;
- end;
- end;
- end;
-
- if s[1]='#' then
- begin
- if nedokonceno=True then
- begin
- Writeln(g,'</A>');nedokonceno:=False;
- end;
- s:=OdstranZbytecneMezery(Copy(s,2,Length(s)-1));komentare:=True;
- cskod:=3;Writeln(g,' <BR><B>',cs(s),'</B></BR>');cskod:=1;goto preskok;
- end;
-
- cskod:=3;
- if komentare=True then Write(g,'<BR><B>');
- Write(g,' '+OdstranZbytecneMezery(cs(s)));
- if komentare=True then Writeln(g,'</B></BR>');
- cskod:=1;
- preskok:
- end;
-
- KonecWWWstranky;
- konec: Close(f);Fr_Sok.Konec;
- end.
-