program HTMLindx { N.B. Recognises @merlyn } ; uses Dos ; procedure Replace(var St : string ; const C : char ; const Ent : string) ; var B : byte ; begin repeat B := Pos(C, St) ; if B=0 then BREAK ; Delete(St, B, 1) ; Insert(Ent, St, B) ; until false end {Replace} ; var F, G : text ; St, T : string ; B : byte ; const FNin : PathStr = '00INDEX.TXT' ; var DS : DirStr ; NS : NameStr ; ES : ExtStr ; BEGIN ; Writeln('HTMLindx - www.merlyn.demon.co.uk >= 2007-12-05') ; if ParamCount>0 then FNin := ParamStr(1) ; Write(FNin, #32) ; Assign(F, FNin) ; Reset(F) ; FSplit(FNin, DS, NS, ES) ; St := DS+NS+'.HTM' ; Writeln('-> ', St) ; Assign(G, St) ; Rewrite(G) ; Writeln(G, '') ; Writeln(G, '') ; Writeln(G) ; Writeln(G, '
') ; Writeln(G, '') ; { Writeln(G, 'To Foot ;') ; Writeln(G, ' to Home Page
') ; Writeln(G) ; { Writeln(G, 'Generated by HTMLindx :
') ; Writeln(G) ; Writeln(G, '') ;
while not EoF(F) do begin St[1] := #32 ; Readln(F, St) ;
if Pos('href', St)=0 then begin
Replace(St, '&', #228'amp;') ; Replace(St, #228, '&') ;
Replace(St, '>', '>') ;
Replace(St, '<', '<') ;
end ;
B := Pos('@merlyn', St) ;
if B>0 then begin Delete(St, B, 1) ; Insert('@', St, B) end ;
if St[1]>#32 then begin B := Pos(#32, St) ; if B=0 then B := 255 ;
T := Copy(St, 1, Pred(B)) ; Delete(St, 1, Pred(B)) ;
for B := 1 to Length(T) do
if T[B] in ['A'..'Z'] then Inc(T[B], 32) ;
Write(G, '', T, '') end ;
Writeln(G, St) ;
end ;
Writeln(G, ''^M^J'