'=========================================================================== ' Subject: IMPORT ANSI INTO BASIC FUNCTION Date: 10-06-96 (08:23) ' Author: Kurt Kuzba Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: ANSI.ABC '=========================================================================== '> ansi for a menu in a quickbasic program without having '> the ansi in a seperate file that has to be loaded and '> without ansi.sys loaded. Is this possible? '>........... ' Yes. It is. This will put the .ANS into code, and, in 'another message, I post an ANSI interpreter. It should be next. '|====================== begin ANSIFUNC.BAS =======================| '| This is a QBasic program to convert an ANSI file to a QBasic | '| FUNCTION that will return the file as a string. In the program | '| this program produces, the function is called and the resulting | '| string is output to CONSOLE, which requires ANSI.SYS loaded. | '| Released to the Public Domain by Kurt Kuzba | '|===================================================================| ' set error trap, set colors, clear screen, q$ = quote mark ========== ON ERROR GOTO Done: COLOR 2, 0: CLS : q$ = CHR$(34) ' create a string for the input boxes =============================== i$ = STRING$(16, " ") + STRING$(15, CHR$(29)) ' print message and get filename from user, open file for input ====== LOCATE 5, 10: PRINT "We will turn an ANSI file into a QBasic function" LOCATE 6, 10: PRINT "which returns the entire ANSI file as a string." LOCATE 8, 10: PRINT "Enter ANSI name [ EX. MYPIC.ANS ] "; COLOR 1, 7: PRINT i$; : INPUT "", ans$: COLOR 2, 0 IF ans$ <> "" THEN OPEN ans$ FOR INPUT AS #1: ELSE GOTO Done ' get name of function to create from user =========================== LOCATE 10, 10: PRINT "Enter Function name [ EX. Pic1$ ] "; COLOR 1, 7: PRINT i$; : INPUT "", func$: COLOR 2, 0 ' make FUNCTION name and open file for input ========================= IF func$ = "" THEN GOTO Done IF RIGHT$(func$, 1) <> "$" THEN func$ = func$ + "$" name$ = func$ + ".bas": OPEN name$ FOR OUTPUT AS #2 ' write QBasic FUNCTION to file ====================================== PRINT #2, "DECLARE FUNCTION "; func$; "()" PRINT #2, "open "; q$; "CONS:"; q$; " FOR OUTPUT AS #1" PRINT #2, "PRINT #1, "; func$ PRINT #2, "FUNCTION "; func$ PRINT #2, "t$ = "; q$; q$ ' process ANSI to create QBasic routine to construct string ========== WHILE NOT EOF(1) WHILE NOT EOF(1) PRINT #2, "t$=t$+"; q$; : C$ = "" WHILE C$ <> CHR$(10) AND NOT EOF(1) C$ = INPUT$(1, #1) IF C$ = CHR$(13) THEN C$ = q$ + " + CHR$(13) + CHR$(10)" + CHR$(13) + CHR$(10) END IF IF C$ <> CHR$(10) THEN PRINT #2, C$; WEND WEND WEND ' finish writing QBasic FUNCTION to file ============================= PRINT #2, q$ PRINT #2, func$; "=t$" PRINT #2, "END FUNCTION" ' done, tell user new program is ready, wait for key ================= LOCATE 12, 10: COLOR 10 PRINT "Your new program, "; name$; ", containing the FUNCTION" LOCATE 13, 10: PRINT func$; ", to display "; ans$; ", is ready to test." LOCATE 14, 10: PRINT "ANSI.SYS must be loaded for "; name$; " to work." Done: CLOSE 1: CLOSE 2: C% = 0: i$ = "" WHILE i$ = "" C% = (C% + 1) AND 15: LOCATE 15, 10: COLOR C%: PRINT "Hit a Key" i$ = INKEY$ WEND: COLOR 2 '| =============== end ANSIFUNC.BAS ==============================|