• MakeHTML

    From Nick Andre@618:500/24 to All on Sun Feb 20 16:44:48 2022
    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? (618:500/24)