StandardIO - Ausgeführtes Programm gibt im Hauptprogramm aus
Übersicht

![]() |
BadudelBetreff: StandardIO - Ausgeführtes Programm gibt im Hauptprogramm aus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Welt,
ich rufe aus meinem Hauptprogramm ein Unterprogramm mit der system_-Funktion auf. Dieses Unterprogramm gibt mittels Print eine Zeile aus. Nun wird automatisch in meinem Hauptprogramm diese Zeile ausgegeben. Ich möchte allerdings diese Zeile weiterverwenden und nicht nur ausgeben. Ich habe schon versucht den StandardIOStream mit einem eigenen Stream zu besetzen, sowie die Print-Methode im Hauptprogramm überschrieben - geht beides nicht. Das einfachste wäre natürlich, das Unterprogramm zu ändern, aber ich möchte als Unterprogramm eine Terminalanwendung benutzen. Weiß wer Rat? Viele Grüße, Badudel |
||
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik! |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ein bisschen schwierig, ich bin daran auch schon gescheitert. Prinzipiell kannst du statt
Code: [AUSKLAPPEN] unterprogramm Code: [AUSKLAPPEN] unterprogramm > tmp.txt ausführen und aus der txt die Ausgabe auslesen. Alternativ kannst du eine C/C++-Anbindung machen, damit geht das bestimmt. Als Alternative zu Print gibt es drittens auch Names Pipes.
ZEVS |
||
![]() |
Badudel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Über eine txt-Datei wird es unschön, vor allem weil dann mein Input für das Terminalprogramm mehrzeilig wird und ich dann noch eine Datei mehr schreiben muss. Die Pipes kann ich auf Mac nicht nutzen, außerdem ist das Unterprogramm ja nicht von mir geschrieben.
Ich schau mal in C++-Foren, vielleicht finde ich da was. Gruß! |
||
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik! |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir Mal das Modul pub.freeprocess an, das kann genau, was du brauchst. Du startest einen Prozess mit TProcess.Create und speicherst den rückgegebenen Handle (Typ TProcess). Dann kannst du über die Field-Variable pipe (Typ TPipeStream) und deren Methode ReadLine die Ausgabe des Programms auslesen. Wenn ich mich richtig erinnere kannst du sogar zurückschreiben. | ||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Badudel |
![]() Antworten mit Zitat ![]() |
---|---|---|
EDIT:
Nach weiterem Suchen habe ich es hier gefunden. https://www.blitzforum.de/foru...ateprocess Suchen bildet. Danke für eure Hilfe! |
||
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group