![]() |
Wie die Error-Ausgabe erstellen im Konsolenprogramm??
Ok folgendes:
Ich möchte in meinem Konsolen Programm eine Error-Ausgabe haben! Ok mal an einem Beispiel erklären was das ist: Tipt mal in der CMD folgendes ein: Dir C:\haumichtod 1>AusgabeNormal.txt 2>AusgabeError.txt + Enter Nun werden die Ausgaben in die Textdatein umgeleitet, "AusgabeNormal.txt" ist die normale "AusgabeError.txt" die Error... Da es bei euch diese haumichtod Datei nicht geben sollte, habt ihr in beiden Datein was drinn... Wie bekomm ich das hin, das ich in meinem Konsolen-Programm was in die Error-Ebene reinschreiben kann? :gruebel: Mit ![]() Bye |
Re: Wie die Error-Ausgabe erstellen im Konsolenprogramm??
IMHO sollte das so gehn...
Delphi-Quellcode:
WriteLn(ErrOutput, 'Test');
|
Re: Wie die Error-Ausgabe erstellen im Konsolenprogramm??
Write{Ln} nimmt als ersten Parameter auch eine Datei, die du mit
![]() |
Re: Wie die Error-Ausgabe erstellen im Konsolenprogramm??
Du musst das Handle von stderr ermitteln und Deiner Ausgabedatei entsprechend zuweisen:
Delphi-Quellcode:
Gruß,
program test_stderr;
{$APPTYPE CONSOLE} uses Windows, SysUtils; var stderr: TextFile; handle: Integer; begin AssignFile(stderr,'CONOUT$'); ReWrite(stderr); handle := TTextRec(stderr).Handle; TTextRec(stderr).Handle := Integer(GetStdHandle(STD_ERROR_HANDLE)); WriteLn('Dies geht nach stdout'); WriteLn(stderr,'Dies geht nach stderr'); TTextRec(stderr).Handle := handle; CloseFile(stderr); end. Marcel |
Re: Wie die Error-Ausgabe erstellen im Konsolenprogramm??
Zitat:
Zitat:
Aber ich werd es mir mal anschaun... Gibt es den Situationen, wo Motzi's Version nicht geht und ich lieber Marcel Gascoyne's nehmen sollte? Werden die Konsolenausgaben als Textdadei behandelt? :gruebel: Da bin ich noch nicht ganz hinter gestiegen... :roll: Bye Edit1: In welcher *.pas finde ich die SDK Function GetStdHandle :gruebel: Edit2: In der Windows.pas, wer lesen kann ist klar im Vorteil... :wall: |
Re: Wie die Error-Ausgabe erstellen im Konsolenprogramm??
In der Unit System gibt es 3 Variablen:
Delphi-Quellcode:
Diese kapseln die 3 Standard-Handles für (Überraschung ;)) Input, Output und Error. Wird bei Write(Ln)/Read(Ln) als erster Parameter kein TextRec oder FileRec übergeben setzt der Compiler automatisch entsprechend Output oder Input ein - entsprechend kannst du einfach ErrOutput verwenden. Denke nicht, dass es da irgendwo Probleme geben sollte..!
Input: Text; { Standard input }
Output: Text; { Standard output } ErrOutput: Text; { Standard error output } |
Re: Wie die Error-Ausgabe erstellen im Konsolenprogramm??
Gut dann bleib ich bei der einfachen Methode, obwohl die andere auch funzt!
Also Dank an beide :thumb: So ich mus weiter :coder: Bye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz