-
IBasic
ich will ein programm schrieben was eine datei "liest" und das tut was drinne steht also sozusagen als quellcode einsetzt
z.B.
Code:
def pw,eingabe:string
pw="irgendwas"
print "das ist das password ",pw
cls
input "Password: ",eingabe
if eingabe = pw
print "Richtig"
else
print "Falsch"
endif
do:until inkey$<>""
closeconsole:end
hier würde man das password nicht lesen können weil es sofort wieder verschwindet ...
Code:
def quellcodestück:file
def pw,eingabe:string
pw="irgendwas"
print "das is das password"
if(openfile(quellcodesück,"C:\code.txt","R") = 0)
'// hier soll das programm die file "lesen" und dan den befehl ausüben der drinne steht
'// wen das gehen würde müsste man in die file schreiben "do:until inkey$<>""
'// das würde den cls so lange rauszögern bis man eine taste drückt
cls
input "Password: ",eingabe
if eingabe = pw
Print "Richtig"
else
print "falsch"
endif
do:until inkey$<>""
closeconsole:end
aber wie kan ich machen das das programm das was in der datei steht als teil des quellcodes sieht ??
bitte um schnelle und übersichtliche hilfe (z.B. mit nem quellcode oder seiten wo hilfreiches zu IBasic auf deutsch steht )
-
hau doch ein vor den cls Befehl ^^
Oder hab ich dich falsch verstanden?
-
ja eig schon ^^
also ich der befehl der da hin passt is do:until inkey$<>""
aber es soll nicht in den quellcode rein sondern das programm soll z.B. die datein C:\Code.txt öffnen und den befehl der da drinne steht ausführen
also wen jemand da reinschreibt do:until inkey$<>"" und das programm den befehl ausfürt kan er das pw lesen drückt danach ne taste und sol dan das pw egeben.
aber wen er nen anderen befehl reinschreibt soll das programm diesen dan auch ausführen
-
hm kurze Frage ^^
Wieso packst du die Schleife nicht direkt ins Hauptprog?
-
also ich wil eig nur das das programm den code ausliest und ihn ausführt das mit dem passw is nur ein beispiel
und ich packe das nicht ins hauptprogramm weil ich halt will das man nich so einfach an iwas aus nem programm von mir kommt
und mit vorgegebenen passw is des zu einfach ^^
-
Dann pack doch das Programm welches ausgelesen werden soll in einzelne Variablen bzw. Arrays....wenn du einen externen kompiler hast kannst du diese variablen dann als quellcode abspeichern und kompilieren.
-
Es gibt da mehrere Wege:
1.) Die Sprache bietet dir von Haus aus so eine Funktion (wie z.B. bei PHP die eval() Funktion)
2.) Du führst die Datei einfach aus, als hätte der User diese Datei per hand angeklickt. Verstanden?
3.) Du baust dir selbst so eine Art Interpreter, der ein paar der Funktionen versteht und ausführt. :P
-
zu 1.) fals es sowas gibt suche ich diese ja mit diesem tread
zu 2.) nich wirklich verstanden
zu 3.) hab ich auhc dran gedacht aber bei manchen funktionen wird das echt aufwendig ^^
ich werd mal nach eval() ähnlichen befehlen in der userguide suchen ^^
thx für eure hilfe :)
-
Hm was hältst du von meiner bereits angesprochenen Lösung?
Du speicherst den code in Variablen.. z.b.
Code:
prog1$ = "cls"
prog2$ = "Pw$ = " + CHR$(34) + "Irgendwas" + CHR$(34)
prog3$ = "Do"
usw. usw.
Das ganze speicherst du dann als eine Datei ab, die du mit deinem Basic Interpreter öffnen und kompilieren kannst.
Wenn du sogar ein Konsolen Compiler hast brauchst du diesen nur noch über das Zweite Programm aufrufen, und die eben erstellte Datei angeben.
Diese wird dann kompilert und enthält genau die Befehle die du brauchst.
-
geht das dan auch auf nem pc der kein compiler hat ?
also nach der fertigstellung sollte man den code in der datein auch ändern können.... und dan auch ohne compiler