Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [DOS] Ausgabe abfangen (https://www.delphipraxis.net/118755-%5Bdos%5D-ausgabe-abfangen.html)

Andi1985 14. Aug 2008 09:41


[DOS] Ausgabe abfangen
 
Hallo,

ich rufe folgendermaßen meine Anwendung auf:

Zitat:

type C:\boot.ini | test.exe
und würde nun gerne in meiner .exe an die Ausgabe vor dem Pipe rankommen...

der ParamStr() bringt mir hier leider nichts.

Ich habe schon nach Pipes gesucht, allerdings glaub ich nicht das die Lösugnsansetze das gleiche verfolgen wie ich...

Kann mir jemand helfen?

MrKnogge 14. Aug 2008 09:44

Re: [DOS] Ausgabe abfangen
 
Es gibt hier im Forum mehrere Themen dies bezüglich, such eventuell mal nach Konsole abfangen oder ähnliches. Wenn ich heute Abend zu Hause bin kann ich dir eine Klasse mit Beispiel schicken, aber hier hab nichts zur Hand.

Andi1985 14. Aug 2008 10:09

Re: [DOS] Ausgabe abfangen
 
wie hier beschreiben
http://www.delphipraxis.net/internal...=860819#860819
brignt mich nicht sonderlich weiter, da hier eine extra Console erzeugt wird in der die abgeschickten Befehle abgefangen werden...

auch dieses beispiel brignt mich nciht weiter, da hier erst im eigendlich programm der dos befehl ausgeführt wird:
http://www.delphi-treff.de/tipps/system/tipp/524/

Hansa 14. Aug 2008 10:21

Re: [DOS] Ausgabe abfangen
 
Was soll denn das werden ? :shock: Und das hier : | ? Brauchst du den Inhalt der Boot.INI im Programm ? Das wäre dann aber so was :
Code:
type boot.ini > Text.exe
IMHO ist das egal wie alles Unfug. Lese die Datei aus und fertig. Zeilenweise mit readln oder lade sie in eine Stringliste.

DeddyH 14. Aug 2008 10:25

Re: [DOS] Ausgabe abfangen
 
Zitat:

Zitat von Hansa
Code:
type boot.ini > Text.exe

Bist Du Dir da sicher? Ich denke eher, dass damit die Text.exe mit dem Inhalt der boot.ini überschrieben wird, was ja nun gar nicht im Sinne des Erfinders sein kann.

Andi1985 14. Aug 2008 10:36

Re: [DOS] Ausgabe abfangen
 
so funktioniert es in C++, aber wie in Delphi?

Zitat:

type C:\boot.ini | test.exe
Zitat:

//--------------------------------------------------------
#include <iostream>

//---------------------------------------------------------
using namespace std;

int main(int argc, char* argv[])
{
char buf[255];
while(cin)
{
cin.getline(&buf[0], 255);

if(!cin)
break;

cout << buf << endl;
}
}
//------------------------------------------------------

Hansa 14. Aug 2008 10:37

Re: [DOS] Ausgabe abfangen
 
Zitat:

Zitat von DeddyH
Ich denke eher, dass damit die Text.exe mit dem Inhalt der boot.ini überschrieben wird..

Uff, stimmt. :shock: Auch das war Unfug. Liebe Kinder, bitte nicht nachmachen. :mrgreen: Aber der Rest bleibt so, er soll die Datei einfach auslesen.

DeddyH 14. Aug 2008 10:41

Re: [DOS] Ausgabe abfangen
 
Vielleicht ist dieser Thread hilfreich.

r2c2 14. Aug 2008 10:44

Re: [DOS] Ausgabe abfangen
 
Machts nicht zu kompliziert. Effektiv ist es doch ganz einfach. Die Pipe leitet die Standardausgabe des einen Programms zur Standardeingabe des anderen weiter. Man muss also nur die Standardeingabe auslesen. Und das funktioniert nach wie vor mit Read() und ReadLn(). Nebnbei schreibt man auf die Standradausgabe mit Write() und WriteLn(). Die Pipe an sich muss also gar nicht beachtet werden...

mfg

Christian

Andi1985 14. Aug 2008 10:48

Re: [DOS] Ausgabe abfangen
 
ah das hat geholfen, allerdigns bekomme ich imemr nur die erste zeile der boot.ini :(
wie setze ich den Lesezeiger weiter?

Delphi-Quellcode:
var
  sOutput: string;
begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }


  repeat
    read(sOutPut);
    Write(sOutPut);
  until sOutPut <> '';



end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz