/*REXX*/ /* TRACE r */ /*---------------------------------------------------------------------------------- This REXX program will run in SPF as a .spf file or other REXX interpreter This program is used to change a DIR /S dump into a HTML file. 4 Sep 2006 To use this macro in SPFSE cut/past to dir2htm.c macro //--------------------------------------------------------------------- // Calls DIR2HTM macro - // 1. Setup USER Command dir2htm // 2. h:\u\b\REXX.BAT h:\u\spfpc40\macros\dir2htm.spf // Uncheck Interpret, Stop and Batch //---------------------------------------------------------------------- void dir2htm(void) { spfservice("cmd","dir2htm"); } // dir2htm Mark McDonald ----------------------------------------------------------------------------------*/ /*--- Determine IF SPFPRO, SPFPC v4.x or Stand-alone REXX Interpreter ---*/ parse version name level date1 date2 date3 /*-- Determine which REXX interpreter is being used ---*/ TSPF = 0 /* Using a stand-alone REXX Interpreter */ IF date3 = 1995 THEN TSPF = 4 /* Using SPFPC v4 */ IF date3 = 1996 THEN TSPF = 5 /* Using SPFPRO */ IF date3 = 2007 THEN TSPF = 6 /* Using OOREXX */ /*--- Init Vars ---*/ TFILEIN = "C:\TEMP\DRET.TXT" TFILEOUT = "C:\TEMP\DRET.HTM" T = " " TIN = " " TDIR = " " TRTN = " " TR = " " CNTI = 0 CNTO = 0 VBACKCOLOR = "#000040" VBGCOLOR = "#000080" VTEXT = "#FFFFFF" VLISTTITLE = "Generated List" VLISTTITLECOLOR = "#FFBF00" VHRCOLOR = "#FFBF00" VTABLETEXT = "#409FFF" VHOVERBK = "#000000" VHOVERCLR = "YELLOW" /*--- Zero Out Destination File (Just in case) ---*/ CALL TOSCMD TSPF, 'ECHO S > 'TFILEOUT /*--- Write the HTML Header ---*/ TR = LINEOUT(TFILEOUT,'',1) TR = LINEOUT(TFILEOUT,'') TR = LINEOUT(TFILEOUT,'') TR = LINEOUT(TFILEOUT,'') TR = LINEOUT(TFILEOUT,''VLISTTITLE'') TR = LINEOUT(TFILEOUT,'') TR = LINEOUT(TFILEOUT,'') TR = LINEOUT(TFILEOUT,'
') TR = LINEOUT(TFILEOUT,'') /*--- Main Loop ---*/ DO WHILE LINES(TFILEIN) > 0 T = LINEIN(TFILEIN) /*--- Get Rid of Garbage Lines ---*/ IF SUBSTR(T,6,19) = "Total Files Listed:" THEN LEAVE IF WORDS(T) < 1 THEN ITERATE IF SUBSTR(T,39,4) = " .. " THEN ITERATE IF SUBSTR(T,39,4) = " . " THEN ITERATE IF SUBSTR(T,2,15) = "Volume in drive" THEN ITERATE IF SUBSTR(T,2,23) = "Volume Serial Number is" THEN ITERATE /*--- Build End Table Code ---*/ IF SUBSTR(T,18,7) = "File(s)" THEN DO TR = LINEOUT(TFILEOUT,'
') T = "" END /*--- Start Folder ---*/ IF SUBSTR(T,2,13) = "Directory of" THEN DO TDIR = STRIP(SUBSTR(T,15),"T"," ") S = LASTPOS("\",TDIR) STDIR = SUBSTR(TDIR,S+1) TR = LINEOUT(TFILEOUT,'
') TR = LINEOUT(TFILEOUT,'
'STDIR'  (TOP)') TR = LINEOUT(TFILEOUT,'
') T = "" END /*--- Create Navigation Link ---*/ IF SUBSTR(T,25,5) = "" THEN DO TTDIR = STRIP(SUBSTR(T,40),"T"," ") TR = LINEOUT(TFILEOUT,'
  • 'TTDIR' (DIR)
  • ') T = "" END /*--- Create Link ---*/ IF (SUBSTR(T,25,5) <> "" & WORDS(T) > 0) THEN DO TTFILE = STRIP(SUBSTR(T,40),"T"," ") TTFILESIZE = WORD(T,4) TR = LINEOUT(TFILEOUT,'
  • 'TTFILE'  'TTFILESIZE'
  • ') T = "" END END /*--- Write HTML Footer ---*/ TR = LINEOUT(TFILEOUT,'
    ') TR = LINEOUT(TFILEOUT,'
    ') TR = LINEOUT(TFILEOUT,'') /*--- Close File ---*/ TR = LINEOUT(TFILEOUT) TR = LINEOUT(TFILEIN) /*--- End Program ---*/ exit (0) /*-- Pass Command to OS -----------------------------------------------------------------------------*/ TOSCMD: PROCEDURE PARSE ARG TSPF, TCMD IF TSPF = 0 THEN ADDRESS COMMAND TCMD /*DOSREXX*/ IF (TSPF = 4 | TSPF = 5) THEN ADDRESS DOS TCMD /*SPFPC4/SPFPRO - Delete if using OOREXX*/ IF TSPF = 6 THEN TCMD /*OOREXX*/ RETURN /*---------------------------------------------------------------------------------------------------*/