/*                                                                          *
   $VER: LM_TAB2xxx.REXX 1.07 (10.08.97) © 1997 Christian T. Steigies
 * Convert LigaManager output to HTML,LaTeX                                 *
 *                                                                          *
 * Usage: RX LM_TAB2HTML <infile>                                           *
 * Usage: RX LM_TAB2LaTeX <infile>                                          *
 *                                                                          */
/*+ "Hauptprogramm" */
/*+ "version, messages" */
ver    = "1.07"
date   = "10.08.97"
date2k = "10.08.1997"
copy   = "© 1997 Christian T. Steigies"
DEBUG  = 0
OUTPUT = 0 /* 1=HTML, 2=LaTeX */

ECHO "LigaManager output converter "ver" ("date")" copy
ECHO "Freeware, NO commercial usage ;-)"
ECHO
ECHO "This program comes without ANY WARRANTY, use at your own risk!"
ECHO
/*- */
/*+ "output definition" */
PARSE source cmdline
IF LEFT(UPPER(WORD(cmdline,3)),11)="LM_TAB2HTML" THEN DO
	prg    = "LM_TAB2HTML"
	outfile = "ram:TAB.html"
	a       = "<TR>"
	x       = "<TD>"
	xr      = "<TD ALIGN=""RIGHT"">"
	y       = "</TD>"
	z       = "</TD></TR>"
	T       = ":"
	blank   = "&#160;"
	OUTPUT=1
	ECHO "Converting to HTML"
END
ELSE IF LEFT(UPPER(WORD(cmdline,3)),12)="LM_TAB2LATEX" THEN DO
	prg    = "LM_TAB2LaTeX"
	outfile = "ram:TAB.tex"
	a       = ""
	x       = ""
	xr      = ""
	y       = " & "
	z       = " \\"
	T       = ":"
	blank   = ""
	OUTPUT=2
	ECHO "Converting to LaTeX"
END
ELSE DO
	ECHO "Don't rename this program! Valid Names are:"
	ECHO " LM2HTML.REXX    for HTML output"
	ECHO " LM2LaTeX.REXX   for LaTeX output"
	EXIT
END
/*- */
/*+ "error checking" */
IF ARG() ~= 1 THEN CALL usage(prg)
IF EXISTS( ARG(1) ) ~= 1 THEN DO
	ECHO "infile not found!"
	ECHO
	CALL usage(prg)
END

OPEN(in,ARG(1),r)
OPEN(out,outfile,w)

titel = READLN(in)

nonascii = X2C('1B')||X2C('5B')
IF INDEX(titel,nonascii,3) > 0 THEN DO
	ECHO "this is not an ASCII input file!"
	ECHO "I don't know how to handle this (yet...)"
	ECHO "Did you disable ""Steuerzeichen"" in options?"
	ECHO
	CALL usage(prg)
END
/*- */
/*+ "parsing" */
/* ECHO titel */
name     = INDEX(titel," Sp ")
spiele_a = INDEX(titel," Sp ")
gew_a    = INDEX(titel,"  g ")
une_a    = INDEX(titel,"  u ")
ver_a    = INDEX(titel,"  v ")
Tore1    = INDEX(titel,"  v ")+4
Tore_a   = INDEX(titel," Tore ")
Quot_a   = INDEX(titel," Quot ")
Diff_a   = INDEX(titel,"Diff ")
Pt_a     = INDEX(titel," Pt")
Pkte_a     = INDEX(titel," Pkte")
/*+ "Debug" */
IF DEBUG=1 THEN DO
	ECHO "Spiele:        "spiele_a
	ECHO "Gewonnen:      "gew_a
	ECHO "Unentschieden: "une_a
	ECHO "Verloren:      "ver_a
	ECHO "Tore:          "Tore_a
	ECHO "Quot:          "Quot_a
	ECHO "Diff:          "Diff_a
	ECHO "Pt:            "Pt_a
	ECHO "Pkte:          "Pkte_a
	ECHO SUBSTR(titel,spiele_a,4)
	ECHO SUBSTR(titel,gew_a,3)
	ECHO SUBSTR(titel,une_a,3)
	ECHO SUBSTR(titel,ver_a,3)
	ECHO SUBSTR(titel,Tore_a,7)
	IF Quot_a >0 THEN DO
		ECHO SUBSTR(titel,Quot_a,5)
	END
	IF Diff_a > 0 THEN DO
		ECHO SUBSTR(titel,Diff_a,4)
	END
	ECHO SUBSTR(titel,Pt_a,7)
END
/*- */
IF (spiele_a==0 | gew_a==0 | une_a==0 | ver_a==0 | Tore_a==0 |  (Quot_a==0 & Diff_a==0) | (Pt_a==0 & Pkte_a==0) ) THEN DO
	ECHO "infile corrupt!"
	CALL usage(prg)
END
/*- */
/*+ "Output Header" */
SELECT
	WHEN OUTPUT=1 THEN DO
/*+ "HTML" */
		WRITELN(out, "<!DOCTYPE HTMLPUBLIC ""-//IETF//DTD HTML 3.2//EN//"">")
		WRITELN(out, "<!-- created with: LigaManager2HTML "ver" by CTS -->")
		WRITELN(out, "<HTML><HEAD><TITLE>Tabelle created with LM2HTML "ver" by CTS</TITLE></HEAD>")
		WRITELN(out, "<BODY>")
		WRITELN(out, "<CENTER>")
		WRITELN(out, "<TABLE BORDER=""1"" CELLPADDING=""5"" CELLSPACING=""0"" WIDTH=""90%"">")
		WRITELN(out, "<TR>")
		WRITELN(out, "<TD COLSPAN=""2"" ALIGN=""LEFT"" VALIGN=""TOP""><B>"STRIP(LEFT(titel,name-1))"</B></TD>")
		WRITELN(out, "<TD ALIGN=""CENTER"" VALIGN=""TOP""><B>Sp</B></TD>")
		WRITELN(out, "<TD VALIGN=""TOP""><B>g</B></TD><TD VALIGN=""TOP""><B>u</B></TD><TD VALIGN=""TOP""><B>v</B></TD>")
		WRITELN(out, "<TD ALIGN=""CENTER"" COLSPAN=""3"" VALIGN=""TOP""><B>Tore</B></TD>")
		IF Quot_a>0 THEN DO
			WRITELN(out, "<TD VALIGN=""TOP""><B>Quot</B></TD>")
		END
		ELSE DO
			WRITELN(out, "<TD VALIGN=""TOP""><B>Diff</B></TD>")
		END
		IF Pt_a>0 THEN DO
			WRITELN(out, "<TD VALIGN=""TOP""><B>Pt</B></TD>")
		END
		ELSE DO
			WRITELN(out, "<TD ALIGN=""CENTER"" COLSPAN=""3"" VALIGN=""TOP""><B>Punkte</B></TD>")
		END
		WRITELN(out, "</TR>")
/*- */
	END
	WHEN OUTPUT=2 THEN DO
/*+ "LaTeX" */
		WRITELN(out, "% created with: LigaManager2LaTeX "ver" by CTS")
		WRITELN(out, "\documentclass{article}")
		WRITELN(out, "\usepackage{german}")
		WRITELN(out, "\usepackage[latin1]{inputenc}")
		WRITELN(out, "\begin{document}")
		IF Pt_a>0 THEN DO
			WRITELN(out, "\begin{tabular}{rl|r|rrr|rcr|r|r}")
		END
		ELSE DO
			WRITELN(out, "\begin{tabular}{rl|r|rrr|rcr|r|rcr}")
		END
		WRITELN(out, "\multicolumn{2}{c|}{"STRIP(LEFT(titel,name-1))"} & Sp & g & u & v &")
		WRITELN(out, "\multicolumn{3}{c|}{Tore} &")
		IF Quot_a>0 THEN DO
			WRITELN(out, "Quot &")
		END
		ELSE DO
			WRITELN(out, "\multicolumn{1}{c|}{Diff} &")
		END
		IF Pt_a>0 THEN DO
			WRITELN(out, "\multicolumn{1}{c}{Pt} \\ ")
		END
		ELSE DO
			WRITELN(out, "\multicolumn{3}{c}{Punkte} \\ ")
		END
		WRITELN(out, "\hline")
/*- */
	END
	OTHERWISE EXIT 10 /* should be unreachable, but who knows... */
	END
/*- */
/*+ "main loop" */
DO WHILE ~ (EOF(in) & zeile=="")
	zeile = READLN(in)
	IF zeile == "" THEN BREAK
	nplatz = INDEX(zeile,".")
	IF nplatz > 0 THEN DO
		platz = LEFT(zeile,nplatz-1)
	END
	IF INDEX(zeile,":") = 0 THEN DO
		NOP
	END
	ELSE DO
		n2platz =index(zeile,")")
		IF n2platz > 0 THEN DO
			team  = STRIP(RIGHT(LEFT(zeile,name-1),name-n2platz-2))
		END
		ELSE DO
			team  = STRIP(RIGHT(LEFT(zeile,name-1),name-nplatz-2))
		END
		Spiele = STRIP(SUBSTR(zeile,spiele_a,4))
		gew    = STRIP(SUBSTR(zeile,gew_a,3))
		une    = STRIP(SUBSTR(zeile,une_a,3))
		ver    = STRIP(SUBSTR(zeile,ver_a,3))
		TorePunkte = SUBSTR(zeile,tore1)
		IF WORDS(TorePunkte) = 3 THEN DO
			Tore = WORD(TorePunkte,1)
			ToreP    = STRIP(LEFT(tore,POS(":",Tore)-1))
			IF ToreP == "" THEN ToreP =blank
			ToreM    = STRIP(SUBSTR(tore,POS(":",Tore)+1))
			IF ToreM == "" THEN ToreM =blank
			QuotDiff = STRIP(WORD(TorePunkte,2))
			Punkte   = STRIP(WORD(TorePunkte,3))
		END
		ELSE DO
			Tore = WORD(TorePunkte,1)
			ToreP    = STRIP(LEFT(tore,POS(":",Tore)-1))
			IF ToreP == "" THEN ToreP =blank
			ToreM    = STRIP(SUBSTR(tore,POS(":",Tore)+1))
			IF ToreM == "" THEN ToreM =blank
			QuotDiff = STRIP(SUBWORD(TorePunkte,2,2))
			Punkte   = STRIP(WORD(TorePunkte,4))
		END

		IF Pt_a >0 THEN DO
			Pt = STRIP(Punkte)
			END
		ELSE DO
			PunkteP = LEFT(Punkte,POS(":",Punkte)-1)
			PunkteM = SUBSTR(Punkte,POS(":",Punkte)+1)
		END
/*+ "Debug" */
		IF DEBUG = 1 THEN DO
			ECHO "Platz: "platz
			ECHO "Team: "team
			ECHO "Spiele: "SUBSTR(zeile,spiele_a,4)
			ECHO "g: "SUBSTR(zeile,gew_a,3)
			ECHO "u: "SUBSTR(zeile,une_a,3)
			ECHO "v: "SUBSTR(zeile,ver_a,3)
			ECHO "Tore: "SUBSTR(zeile,Tore_a,7)
			IF Quot_a >0 THEN DO
				ECHO "Quot: "SUBSTR(zeile,Quot_a,5)
			END
			IF Diff_a > 0 THEN DO
				ECHO "Diff: "SUBSTR(zeile,Diff_a,4)
			END
			ECHO "Punkte: "SUBSTR(zeile,Pt_a,7)
		END
/*- */
/* WRITELN(out, a||platz||"."||y||x||"("||vplatz||")"||y) */
/* Vortagsplatzierung gibts beim nächsten Mal... */
		WRITELN(out, a||xr||platz||"."||y)
		WRITELN(out, " "||x||team||y||xr||Spiele||y)
		WRITELN(out, " "||xr||gew||y||xr||une||y||xr||ver||y)
		WRITELN(out, " "||xr||ToreP||y||x||T||y||xr||ToreM||y)
		WRITELN(out, " "||xr||QuotDiff||y)
		IF Pt_a>0 THEN DO
			WRITELN(out, " "||xr||Pt||z)
		END
		ELSE DO
			WRITELN(out, " "||xr||PunkteP||y||x||T||y||xr||PunkteM||z)
		END
		/*END*/
	END
END
/*- */
/*+ "Output Footer" */
SELECT
	WHEN OUTPUT=1 THEN DO
/*+ "HTML" */
		WRITELN(out, "</TABLE>")
		WRITELN(out, "</CENTER>")
		WRITELN(out, "</BODY>")
		WRITELN(out, "</HTML>")
/*- */
	END
	WHEN OUTPUT=2 THEN DO
/*+ "LaTeX" */
		WRITELN(out, "\end{tabular}")
		WRITELN(out, "\end{document}")
/*- */
	END
	OTHERWISE EXIT 10 /* should be unreachable, but who knows... */
	END
/*- */
CLOSE(out)
CLOSE(in)
ECHO "Ready."
EXIT
/*- */
/*+ "Unterroutinen"*/
usage:
ARG prg
	SAY "Usage: RX" prg "<infile>"
	ECHO
	ECHO "Ready."
	EXIT

/*- */

