2016-12-23 4 views
1

Je voudrais savoir comment diriger correctement STDOUT et STDIN vers un programme qbasic fonctionnant sous DOS 6.22. Je voudrais que mon programme qbasic soit en mesure d'exécuter EEUPDATE.exe via la ligne suivante "EEUPDATEW.exe/NIC = * /FILE=I211.txt/MAC = */INVMUPDATE", puis lit dans le STDOUT posté par EEUPDATE.exe pour un traitement ultérieur. Comment ferais-je cela? Je me suis cogné le cerveau toute la journée et je n'arrive pas à le faire marcher.Comment acheminer STDOUT et STDIN vers le programme qbasic

Ci-dessous si mon programme simple. En ce moment, il peut simplement saisir l'adresse MAC, plus tard, je vais incrémenter l'adresse MAC en fonction de ce que je reçois de STDOUT.

enter image description here

+0

MS-DOS ne prend pas en charge multi-tâches et ne peut pas courir deux programmes en même temps, donc ce que vous » re demander n'est pas possible. Vous pouvez rediriger la sortie de EEUPDATEW vers un fichier, puis lire ce fichier. Je ne sais pas comment vous feriez cela sur QBasic cependant. –

+1

Vous pouvez utiliser SHELL pour rediriger la sortie vers un fichier, puis l'ouvrir pour la saisie. – eoredson

Répondre

2

Voici un exemple de la façon d'utiliser SHELL dans QBasic:

DECLARE SUB GetFiles (Var$) 
REM list files in current directory 
C$ = "C:*.*" 
CALL GetFiles(C$) 
END 

SUB GetFiles (Var$) 
Var2$ = "dir " + Var$ + " > tempfile.dir" 
SHELL Var2$ 
OPEN "tempfile.dir" FOR INPUT SHARED AS #1 
DO UNTIL EOF(1) 
    LINE INPUT #1, X$ 
    PRINT X$ 
LOOP 
END SUB