Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

QB Befehl ausführen welche in einem String stehen???

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jean



Anmeldungsdatum: 26.12.2004
Beiträge: 15
Wohnort: Schweiz

BeitragVerfasst am: 15.05.2005, 15:05    Titel: QB Befehl ausführen welche in einem String stehen??? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 15.05.2005, 15:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 15.05.2005, 15:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jean



Anmeldungsdatum: 26.12.2004
Beiträge: 15
Wohnort: Schweiz

BeitragVerfasst am: 15.05.2005, 19:06    Titel: Antworten mit Zitat

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... mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 15.05.2005, 19:12    Titel: Antworten mit Zitat

Dann mach das mit dem SHELL so:

SHELL "START QB.EXE /RUN c:\dir\bla.bas"

zwinkern
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 15.05.2005, 19:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 15.05.2005, 23:36    Titel: Selbstmodifizierender Code Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz