AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[DOS] Ausgabe abfangen

Ein Thema von Andi1985 · begonnen am 14. Aug 2008 · letzter Beitrag vom 15. Aug 2008
Antwort Antwort
Seite 3 von 4     123 4      
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#21

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 13:13
Dein Programm erwartet Daten auf STDIN. Wenn diese Daten nicht über eine Pipe angeliefert werden, dann kannst du sie per input redirection "prog < filename" bereit stellen. Oder per command line parameter:

Delphi-Quellcode:
begin
  AssignFile(input, ParamStr(1));
  // ...
end;
Das Ende der Eingabe kannst du über die Tastatur mit Strg+Z signalisieren, wenn du keine Eingabe-Umleitung verwendet hast.
  Mit Zitat antworten Zitat
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#22

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 13:35
Zitat von marabu:
Dein Programm erwartet Daten auf STDIN. Wenn diese Daten nicht über eine Pipe angeliefert werden, dann kannst du sie per input redirection "prog < filename" bereit stellen. Oder per command line parameter:

Delphi-Quellcode:
begin
  AssignFile(input, ParamStr(1));
  // ...
end;
Das Ende der Eingabe kannst du über die Tastatur mit Strg+Z signalisieren, wenn du keine Eingabe-Umleitung verwendet hast.
versteh ich nicht ganz ...

entweder hab ich den Aufruf meiner exe mit einem PIPE davor oder nicht...
wenn meine Exe normal aufgerufen wird... soll sie den quellcode (siehe oben) nicht ausführen..

ah das ist aber schlecht, kann man nicht abfragen ob "aufruf mit pipe oder ohne" ?
also

Delphi-Quellcode:
WENN PIPE DANN
AssignFile(input, ''); //stdin
  AssignFile(output, ''); //stdout
  Reset(input);
  Rewrite(output);
  while not Eof do
  begin
    ReadLn(line);
    WriteLn(line);
  end;
  CloseFile(output);
  CloseFile(input);
END
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#23

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 13:39
Zitat von Mogtar:
mir ist aber noch etwas aufgefallen:
wenn ich nun meine exe normal aufrufe ohne Type C:\boot.ini | dann bleibt er bei EOF hängen :(
Dann gibt doch ein EOF ein: CtrlZ bzw. StrgZ.

Gammatester
  Mit Zitat antworten Zitat
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#24

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 14:09
Zitat von gammatester:
Zitat von Mogtar:
mir ist aber noch etwas aufgefallen:
wenn ich nun meine exe normal aufrufe ohne Type C:\boot.ini | dann bleibt er bei EOF hängen
Dann gibt doch ein EOF ein: CtrlZ bzw. StrgZ.

Gammatester
versteh ich jetzt nicht was du meinst...
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#25

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 14:23
Zitat von Mogtar:
Zitat von gammatester:
Zitat von Mogtar:
mir ist aber noch etwas aufgefallen:
wenn ich nun meine exe normal aufrufe ohne Type C:\boot.ini | dann bleibt er bei EOF hängen :(
Dann gibt doch ein EOF ein: CtrlZ bzw. StrgZ.

Gammatester
versteh ich jetzt nicht was du meinst...
Er hängt nicht, sondern wartet auf EOF. Und das mußt Du halt eingeben, und das ASCII-Zeichen dafür es ist nun mal ein CtrlZ bzw. StrgZ, oder vergleiche:

Zitat von marabu:
Das Ende der Eingabe kannst du über die Tastatur mit Strg+Z signalisieren ...
  Mit Zitat antworten Zitat
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#26

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 14:31
aber das Programm soll ohne die Manuelle Eingabe des Benutzern laufen...
wenn ich dich jetzt richtig verstehe.. das heißt ich muss das Quellcodetechnisch abfangen... nur wie...
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#27

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 15:00
Zitat von Mogtar:
aber das Programm soll ohne die Manuelle Eingabe des Benutzern laufen...
wenn ich dich jetzt richtig verstehe.. das heißt ich muss das Quellcodetechnisch abfangen... nur wie...
???

Du wolltest doch wissen, wie man ein EOF eingibt, wenn man das Programm interaktiv ohne Redirection startet! (Genauer Du hast behauptet "er hängt wenn ..."). Und nur darauf habe ich geantwortet.

Wenn Du die ganze Zeit meinst, wie man feststellen kann, ob input umgeleitet ist oder eine Konsole ist: Es muß irgendwo eine API-Funktion geben, die in etwa sagt "handle is console" (jedenfalls gibt's das im DOS-API, und es würde mich wundern wenn's so eine Fkt. nicht für WIN32 gibt). Als Handle dann entweder TTextRec(input).Handle oder GetStdHandle(STD_INPUT_HANDLE) verwenden. (Ungetestet! Also ausprobieren, bzw. selbstfinden oder auf Hinweise von anderen DP-Usern warten).

Gammatester

Zusatz via Edit: Ein kurzer Test zeigt, daß
GetFileType(GetStdHandle(STD_INPUT_HANDLE)) je nach Aufrufart unterschiedliche Werte liefert, hier für die Werte siehe Delphihilfe zu GetFileType
  Mit Zitat antworten Zitat
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#28

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 15:44
Zitat von gammatester:
Zusatz via Edit: Ein kurzer Test zeigt, daß
GetFileType(GetStdHandle(STD_INPUT_HANDLE)) je nach Aufrufart unterschiedliche Werte liefert, hier für die Werte siehe Delphihilfe zu GetFileType

cool, danke^^
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#29

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 16:22
Zitat von Hansa:
Wiseo geht das hier nicht ?

Delphi-Quellcode:
var s : TStringList;
begin
  s.LoadFromFile ('C:\boot.ini');
Oder muss es komplizierter sein ?
Hansa da gebe ich Dir recht, warum einfach wenn es auch umständlich geht. Das gleiche ist mit meiner Funktion. Einfach den Befehl Type boot.ini übergeben und als Ergebnis die Ausgabe.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#30

Re: [DOS] Ausgabe abfangen

  Alt 14. Aug 2008, 17:10
So was wie hier, das sind Threads, wo es schon fast zu blöd wird, zu antworten. @Fragesteller : warum ist LoadFromFile bei dir nicht möglich ? Nur, um Daten aus einer Textdatei im Programm auszuwerten ? Ja, echt sagenhaft.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
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