I had a need to do a quick-n-dirty export of a directory of files into a raw HTML table output.
The idea is that you have a header file and a footer. You run this to create the body, then bring it all together via COPY HEADER.HTM + MAKEHTML.HTM + FOOTER.HTM SOMESITE.HTM
If Files.bbs exists in the directory, it will read it for one-liner descriptions.
If the file MAKEHTML.--- exists, it will instead read the contents of this file for generating the table. This is so you can sort the results, ie. DIR
/B /O:-D DB\FILEECHO\NODEDIFF > MAKEHTML.---
The results can be seen at
https://fido-z1.darkrealms.ca
Enjoy...
program makehtml;
uses sysutils,dos;
var p,w : string;
dirinfo : SearchRec;
ft : tdatetime;
h,t,t2 : text;
const df = 'mm"/"dd"/"yyyy';
procedure make_html(what : string ; ts : longint);
var d,ds : string;
begin
d:='';
assign(t,p+'files.bbs');
(*$I-*) reset(t);
if ioresult=0 then
begin
while not eof(t) and (d='') do
begin
readln(t,w);
if (pos(uppercase(what),w)>0) then d:=copy(w,length(what)+2,length(w));
end;
close(t);
end;
if (uppercase(paramstr(4))<>'N') and (uppercase(what)<>'FILES.BBS') then
begin
ft:=FileDateToDateTime(ts);ds:=FormatDateTime(df,ft);
writeln(h,'<tr><td><a href='+paramstr(3)+what+'>'+what+'</a></td><td>'+ds+'</td><td>'+d+'</td></tr>' );
writeln('Adding '+what+' '+ds+' '+d);
end;
end;
begin
writeln('MakeHTML 1.0/Win32 Copyright (c) by Nick J. Andre, Ltd.');
writeln;
if (paramstr(1)>'') and (paramstr(2)>'') and (paramstr(3)>'') then
begin
p:=paramstr(2);if p[length(p)]<>'\' then p:=p+'\';
assign(h,paramstr(1));
(*$I-*) rewrite(h);
writeln(h,'<th>File</th><th>Date</th><th>Description</th>');
assign(t2,'makehtml.---');
(*$I-*) reset(t2);
if ioresult=0 then
begin
while not eof(t2) do
begin
readln(t2,w);
findfirst(p+w,archive,dirinfo);
if DOSerror=0 then make_html(dirinfo.name,dirinfo.time);
findclose(dirinfo);
end;
close(t2);
end
else
begin
findfirst(p+'*.*',archive,dirinfo);
if DOSerror=0 then make_html(dirinfo.name,dirinfo.time);
while (DOSerror=0) do
begin
findnext(dirinfo);
make_html(dirinfo.name,dirinfo.time);
end;
findclose(dirinfo);
end;
writeln(h,'</table>');close(h);
end
else
begin
writeln('Usage: MAKEHTML [Html table file] [Path] [Base] [BBS]');writeln;
writeln('MAKEHTML creates an HTML table from files in Path using Base.');
writeln('Optional BBS means include listing files.bbs, [Y]es or [N]o.');
end;
end.
Nick
--- Renegade vY2Ka2
* Origin: Joey, do you like movies about gladiators? (1:229/426)