Ich habe bereits die Hilfe und ein paar tuts durch, ebenso
hier im Forum gesucht, aber nichts wirklich passendes gefunden....
Ich benutze PureBasic_Demo_5.22.exe auf Win7, 32-bit.
FRAGE
Ich würde gern eine Konsolenanwendung schreiben, welches an stdin von einer Pipe die Daten einliest, etwa so wie z.B. SED.
Beispiel:
C:\>dir /b *.txt | myapp.exe
(Zweites Problem: wenn am stdin nichts reinkommt, soll automatisch der dann hoffentlich übergebene Parameter eingelesen werden. Oder umgekehrt.)
C:\>myapp.exe test.txt
PROBLEM
Zur Zeit bekomme ich beim stdin nur ein paar Fragezeichen angezeigt:
C:\>echo example.txt | myapp.exe
Got: ?????4?
Das Einlesen des Inputs über einen Parameter funktioniert:
C:\>myapp.exe example.txt
Got: example.txt
CODE
Mein code sieht folgendermaßen aus:
(Die Logik zur Entscheidung; stdin oder parameter, fehlt mir noch)
Code: Alles auswählen
;OpenConsole() ; Wait for user input
;we execute this app already from a console window, we do not need to open one first.
If OpenConsole()
;sInput$ = ProgramParameter(0)
;Repeat
sInput$ = Input()
PrintN("Got as input: "+sInput$)
;Until (sInput$ = "" )
EndIf
End
Zum Vergleich
Mit VBS und Pascal konnte ich die Pipe lesen:
Code: Alles auswählen
begin
while not EOF do begin
ReadLn(sInFilename);
funcDoSomething( sInFilename, sOutputStr );
//WriteLn( sOutputStr + '_pipe-works' );
WriteLn( sOutputStr );
end;
end.
Aber bei PureBasic fehlt mir noch etwas?

Danke für eure Hilfe.
Read piped stdout from other app on stdin from my app