Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jean
Anmeldungsdatum: 26.12.2004 Beiträge: 15 Wohnort: Schweiz
|
Verfasst am: 15.05.2005, 15:05 Titel: QB Befehl ausführen welche in einem String stehen??? |
|
|
Hallo
Gibt es in QBasic einen Befehl mit dem ich QB Befehle ausführen kann welche in einem String stehen?
Z.B.
befehl$ = "Print "Hallo""
eval befehl$
Kennt jemand sowas?
THX |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 15.05.2005, 15:10 Titel: |
|
|
Du könntest den Befehl in eine andere BAS-File schreiben, und diese dann via CHAIN ausführen.
Code: |
Befehl$ = "PRINT " + CHR$(34) + "Hallo" + CHR$(34)
OPEN "Temp.BAS" FOR OUTPUT AS #1
PRINT #1, Befehl$
CLOSE #1
CHAIN "Temp.BAS"
|
sollte hinhaun, allerdings kannst du's nicht zur exe machen. _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 15.05.2005, 15:18 Titel: |
|
|
Dusky_Joe hat Folgendes geschrieben: |
sollte hinhaun, allerdings kannst du's nicht zur exe machen.
|
Ja, schon. Aber via SHELL und QB schon. Dieser Code sollte auch nach der Kompilation
einwandfrei laufen:
Code: |
Befehl$ = "PRINT " + CHR$(34) + "Hallo" + CHR$(34)
OPEN "Temp.BAS" FOR OUTPUT AS #1
PRINT #1, Befehl$
CLOSE #1
SHELL "C:\QBASIC\QB.EXE /RUN Temp.BAS"
|
jb |
|
Nach oben |
|
 |
Jean
Anmeldungsdatum: 26.12.2004 Beiträge: 15 Wohnort: Schweiz
|
Verfasst am: 15.05.2005, 19:06 Titel: |
|
|
Nunja, das ist nicht wirklich das was ich brauche... denn ich brauche es für ein multitasking Programm, welchen die Befehle immer Zeilenweise ausführt. Mit Chain welchselt das ganze Programm zum auszuführenden Script und mit dem Compiler wird das ganze Programm geschlossen. Am besten wäre sowas mit dem man gleich den Befehl im Programm ausführen kann. Bitte helft mir!!! Oder gebt mir wenigstens einen Ratschlag wie ich sowas realisieren kann...  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 15.05.2005, 19:12 Titel: |
|
|
Dann mach das mit dem SHELL so:
SHELL "START QB.EXE /RUN c:\dir\bla.bas"
 _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 15.05.2005, 19:30 Titel: |
|
|
Dann häng an deinen Script eben noch eine CHAIN-Zeile an, die wieder zum Hauptprogramm zurückkehrt an:
Code: | 'Haupt.bas
Befehl$ = "PRINT " + CHR$(34) + "Hallo" + CHR$(34)
OPEN "Temp.BAS" FOR OUTPUT AS #1
PRINT #1, Befehl$
PRINT #1, "CHAIN " + CHR$(34) + "HAUPT.BAS" + CHR$(34)
CLOSE #1
CHAIN "Temp.BAS" |
So hab ich mal ein Prog geschrieben, das den Graphen einer Funktion anzeigt.
Eigenlich könnte man sogar in einer EXE komplett auf die QB-IDE verzichten, wenn zumindest die BC.EXE da ist... aber das ist wohl ne andere Geschichte _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 15.05.2005, 23:36 Titel: Selbstmodifizierender Code |
|
|
Ich hatte dazu früher einmal im Usenet etwas ähnliches publiziert:
http://groups.google.com/groups?selm=91jbgb%24sm4%244%40news1.sunrise.ch
Zum Thema Multitasking: In VBScript, also nicht QB, gibt es beim WScript.Shell-Objekt die Methode Run(), bei welcher man einen Parameter mitgeben kann, ob das gestartete Programm im Hintergrund laufen soll oder ob die Beendigung abgewartet werden soll, z.B. weil man den ERRORLEVEL benötigt.
Mit START.EXE müsste dies eigentlich auch bei QB möglich sein, d.h. ohne /WAIT kehrt das aufrufende Hauptprogramm sofort wieder zurück, während es bei /WAIT das Ende abwartet. => Ich würde es daher einmal mit
Code: | SHELL "start qb /run foobar.bas" |
probieren. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|