Here is an old program i wrote, to convert HTM files to ANSI TXT files (it needs ANSI.SYS loaded in dos)
Code: Select all
' HTML to TXT filter
Comm$ = RTRIM$(LTRIM$(COMMAND$))
M = INSTR(Comm$, " ")
IF M = 0 THEN PRINT "Please enter input and output files": END
In$ = LEFT$(Comm$, M)
Out$ = MID$(Comm$, M + 1)
CS$ = "40"
CT$ = "37": Testo = 0
OPEN In$ FOR INPUT AS #1
OPEN Out$ FOR OUTPUT AS #2
S = 1
DO
P$ = ""
IF EOF(1) THEN PRINT #2, CHR$(27) + "[0;37;40m": END
LINE INPUT #1, a$
M = 0
FOR I = 1 TO LEN(a$)
M = M + 1
V$ = MID$(a$, M): R$ = LEFT$(V$, 1)
IF LCASE$(LEFT$(V$, 6)) = """ THEN R$ = CHR$(34): M = M + 5
IF LCASE$(LEFT$(V$, 8)) = "è" THEN R$ = "?": M = M + 7
IF LCASE$(LEFT$(V$, 8)) = "é" THEN R$ = "?": M = M + 7
IF LCASE$(LEFT$(V$, 8)) = "à" THEN R$ = "?": M = M + 7
IF LCASE$(LEFT$(V$, 8)) = "ò" THEN R$ = "?": M = M + 7
IF LCASE$(LEFT$(V$, 8)) = "ù" THEN R$ = "?": M = M + 7
IF LCASE$(LEFT$(V$, 5)) = "&" THEN R$ = "&": M = M + 4
IF LCASE$(LEFT$(V$, 4)) = "<" THEN R$ = "<": M = M + 3
IF LCASE$(LEFT$(V$, 4)) = ">" THEN R$ = ">": M = M + 3
IF LCASE$(LEFT$(V$, 4)) = "<hr>" THEN R$ = STRING$(80, "-"): M = M + 3
IF LCASE$(LEFT$(V$, 5)) = "<font" THEN Font = 1
IF LCASE$(LEFT$(V$, 7)) = "</font>" THEN R$ = CHR$(27) + "[0;" + CS$ + ";" + CT$ + "m": M = M + 6
IF LCASE$(LEFT$(V$, 4)) = "<li>" THEN R$ = "?": M = M + 3
IF LCASE$(LEFT$(V$, 3)) = "<b>" THEN R$ = CHR$(27) + "[1;" + CS$ + ";" + CT$ + "m": M = M + 2
IF LCASE$(LEFT$(V$, 4)) = "</b>" THEN R$ = CHR$(27) + "[0;" + CS$ + ";" + CT$ + "m": M = M + 3
IF LCASE$(LEFT$(V$, 7)) = "<blink>" THEN R$ = CHR$(27) + "[5;" + CS$ + ";" + CT$ + "m": M = M + 6
IF LCASE$(LEFT$(V$, 8)) = "</blink>" THEN R$ = CHR$(27) + "[0;" + CS$ + ";" + CT$ + "m": M = M + 7
IF S = 0 THEN
IF LCASE$(LEFT$(V$, 10)) = "bgcolor=" + CHR$(34) + "#" THEN
C$ = MID$(V$, 11, 6): Red = 0: Green = 0: Blue = 0
IF MID$(C$, 1, 1) <> "0" AND VAL(MID$(C$, 1, 1)) = 0 THEN Blue = 1
IF MID$(C$, 3, 1) <> "0" AND VAL(MID$(C$, 3, 1)) = 0 THEN Green = 1
IF MID$(C$, 5, 1) <> "0" AND VAL(MID$(C$, 5, 1)) = 0 THEN Red = 1
Colore = Blue * 4 + Green * 2 + Red * 1: IF Testo = 0 AND Colore = 7 THEN Testo = 1: CT$ = "30"
CS$ = MID$(STR$(40 + Colore), 2)
P$ = P$ + CHR$(27) + "[0;" + CS$ + ";" + CT$ + "m"
END IF
IF LCASE$(LEFT$(V$, 7)) = "text=" + CHR$(34) + "#" THEN
C$ = MID$(V$, 11, 6): Red = 0: Green = 0: Blue = 0
IF MID$(C$, 1, 1) <> "0" AND VAL(MID$(C$, 1, 1)) = 0 THEN Blue = 1
IF MID$(C$, 3, 1) <> "0" AND VAL(MID$(C$, 3, 1)) = 0 THEN Green = 1
IF MID$(C$, 5, 1) <> "0" AND VAL(MID$(C$, 5, 1)) = 0 THEN Red = 1
Colore = Blue * 4 + Green * 2 + Red * 1
CT$ = MID$(STR$(30 + Colore), 2)
P$ = P$ + CHR$(27) + "[0;" + CT$ + ";" + CS$ + "m"
END IF
IF LCASE$(LEFT$(V$, 8)) = "color=" + CHR$(34) + "#" AND Font THEN
C$ = MID$(V$, 11, 6): Red = 0: Green = 0: Blue = 0
IF MID$(C$, 1, 1) <> "0" AND VAL(MID$(C$, 1, 1)) = 0 THEN Blue = 1
IF MID$(C$, 3, 1) <> "0" AND VAL(MID$(C$, 3, 1)) = 0 THEN Green = 1
IF MID$(C$, 5, 1) <> "0" AND VAL(MID$(C$, 5, 1)) = 0 THEN Red = 1
Colore = Blue * 4 + Green * 2 + Red * 1
P$ = P$ + CHR$(27) + "[0;" + MID$(STR$(30 + Colore), 2) + ";" + CS$ + "m"
END IF
END IF
IF R$ = CHR$(10) THEN R$ = CHR$(13)
IF R$ = "<" THEN S = 0
IF S THEN P$ = P$ + R$
IF R$ = ">" THEN S = 1: Font = 0
NEXT
'PRINT A$
PRINT #2, P$
'SLEEP 1
LOOP