Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Einfacher Basic-Interpreter (eher Scriptsprache)

Uploader:MitgliedAndT
Datum/Zeit:01.11.2007 21:59:39

' Einstellungen
DIM AS INTEGER lines = 1
DIM SHARED AS STRING LineCode(9999)
DIM SHARED AS INTEGER aktline
DIM AS STRING cmdshell
DIM SHARED AS INTEGER ln = 1

' Der eigendliche Interpreter (nutzt nur FB eigene Befehle..)
SUB fb_low(cmd AS STRING, arg AS STRING) ' Soll bis jetzt nur einfache Befehle enthalten..
IF INKEY =CHR(27) then exit SUB
SELECT CASE UCASE(cmd)
    CASE "PRINT"
        PRINT arg

    CASE "SCREEN"
        SCREEN VAL(arg)
    case "COLOR"
        COLOR VAL(arg)
    case "SLEEP"
        sleep VAL(arg)
    case "END"
        aktline = ln+1
    case "GOTO"
        aktline = VAL(arg)-1
    END SELECT
END SUB


'____________ Runlib ____________
SUB runlib ' Funzt jetzt besser als man denkt ;)
    DIM AS STRING cmd
    DIM AS STRING arg
    FOR aktline  = 1 TO ln

        cmd = LEFT(linecode(aktline),INSTR(Linecode(aktline)," ")-1)
        arg = MID(linecode(aktline),INSTR(Linecode(aktline)," ")+1,len(linecode(aktline)))
        fb_low(cmd,arg) ' Einfache (LOW) Befehle werden hier Interpretiert
NEXT

LOCATE 4,1:PRINT "Programm beenden mit Taste"
SLEEP
END SUB

'____________ Help ____________
SUB help
    PRINT
    PRINT "Verfuegbare Befehle PRINT, SCREEN, COLOR, END , GOTO"
    PRINT "Zur Eingabeconsole mit Enter"
    DO
        SLEEP 1
        LOOP UNTIL INKEY = CHR(13)

    END SUB

'Programm eigene Functionen
SUB InternControl(cmdshell AS STRING)
    cmdshell = LCASE(cmdshell)
    IF cmdshell = "_exit" THEN RESET:SCREEN 0:COLOR 7,0: : SYSTEM
    if cmdshell ="_run" then LOCATE 4,1:PRINT "Programm läuft..          ":runlib
    IF cmdshell = "_help" THEN help : ln-=1
    if cmdshell = "_reset" THEN LN = 1
    END SUB



' Eingabe
DO
rn:
CLS

LOCATE 1,1:PRINT "Freebasic Programmaker (minimaltestcode, gepatcht)"
LOCATE 2,1:PRINT "_run startet das Progamm, _exit beendet das Programm, _help listet Befehle auf"

LOCATE 4,1:PRINT "BEREIT feur Befehle.."
LOCATE 5,1
IF ln < 1 THEN ln = 1
LOCATE 6,1:PRINT "Aktuelle Zeile : ";ln
INPUT "Eingabe : ",cmdshell ' Hier werden die Befehle eingegeben
IF LEFT(cmdshell,1)="_" THEN InternControl(cmdshell):goto rn
IF cmdshell <> "" THEN LineCode(ln) = cmdshell:ln+=1