AGB  ·  Datenschutz  ·  Impressum  







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

Ausgabe eines DOS-Programmes empfangen

Ein Thema von rebugger · begonnen am 2. Nov 2002 · letzter Beitrag vom 2. Nov 2002
Antwort Antwort
Seite 2 von 2     12   
Daniel B
(Gast)

n/a Beiträge
 
#11
  Alt 2. Nov 2002, 10:31
Hallodriii,

Du solltest PHPOutput mittel PChar(PHPOutput) in einen Char ändern. Bei den anderen auch.

Servus.
  Mit Zitat antworten Zitat
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#12
  Alt 2. Nov 2002, 10:37
jo, ok, habe nun:
Code:
  PHPString := TStringList.Create;
  PHPstring.LoadFromFile(PHPfile);
  PHPoutput := '>c:\ausgabe.htm';
  PHPstring.Text := StringReplace(PHPstring.Text, #13#10, '', [rfReplaceAll]);

  MessageDlg(PHPpath + ' ' + PHPstring[0] + ' ' + PHPoutput, mtInformation, [mbOK], 0);
  ShellExecute(0, 'open', PChar(PHPpath + ' ' + PHPstring[0] + ' ' + PHPoutput), nil, nil, SW_NORMAL);
Es gibt keine Fehlermeldung !
Der Browser versucht c:\ausgabe.htm anzuzeigen, nur leider wurde sie nicht angelegt !
Per MessageDlg() habe ich mir zur Sicherheit den Text ausgeben lassen:
Code:
php.exe <?php phpinfo(); ?> >ausgabe.htm
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#13
  Alt 2. Nov 2002, 10:45
Du solltest die Datei selbst mit
Code:
FileCreate('C:\Windows\Desktop\text.txt');
anlegen.
Und dann nur noch zum Schreiben öffnen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#14
  Alt 2. Nov 2002, 11:47
Moin Rebugger,

ich hab' Deine letzten Codeschnipsel mal ein wenig überarbeitet:

Code:
[b]var[/b]
  PHPString : [b]string[/b];
  fsIN     : TFileStream;

[b]begin[/b]
  fsIN := TFileStream.Create(PHPFile,fmOpenRead);
  [b]try[/b]
    PHPString := StringOfChar(#00,fsIN.Size);
    fsIN.Read(PHPString[1],fsIN.Size);
    PHPoutput := '>c:\ausgabe.htm';
    PHPstring := StringReplace(PHPstring, #13#10, '', [rfReplaceAll]);
    MessageDlg(PHPpath + ' ' + PHPstring + ' ' + PHPoutput, mtInformation, [mbOK], 0);
    ShellExecute(0, 'open', PChar(PHPpath + ' ' + PHPstring + ' ' + PHPoutput), [b]nil[/b], [b]nil[/b], SW_NORMAL);
  [b]finally[/b]
    FreeAndNil(fsIN);
  [b]end[/b];
[b]end[/b];
Da Du offensichtlich nicht die einzelnen Zeilen brauchst (immerhin löscht Du ja alle Zeilenvorschübe), dürfte diese Variante etwas resourcensparender sein.
Bist Du sicher, dass es funktioniert, wenn Du alle Zeilenvorschübe löscht?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#15
  Alt 2. Nov 2002, 11:49
Hi rebugger,

der Trick mit "> ausgabe.htm" funktioniert leider bei Win32-Konsolenanwendungen teilweise nicht mehr. ICh habe mal ein OpenSource-Prog geschrieben, das (auf der GBasis von einem Code von NicoDE) Konsolenoutputs abfängt, schau's dir mal an: http://www.gollatz.net/download.php?1.

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#16
  Alt 2. Nov 2002, 11:53
Moin d3g,

ob die Umleitung mit > nicht funktioniert dürfte wohl davon abhängen, ob das Programm auf StdOut oder auf StdError schreibt.

In der Form

1> Dateiname

wird StdOut umgeleitet, in der Form

2> Dateiname

hingegen StdError.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#17
  Alt 2. Nov 2002, 12:03
Der PHP-Parser kann die Befehle nicht verarbeiten, wenn sie als Parameter kommen. Du mußt die Befehle erst in eine Daten speichern und dann php.exe mit dem Dateinamen als Parameter. Die Ausgabe kannst du mit "> ausgabe.html" abfangen!
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#18
  Alt 2. Nov 2002, 12:27
... oder (eleganter) die Daten über eine Pipe auf den StdIn des Programms schreiben.

@Chris: Auf meinem System (Windows ME) macht der >-Operator sowohl mit dem StdOut als auch mit dem StdErr manchmal (!) Probleme. Keine Ahnung woran das liegt.

MfG,
d3h
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#19
  Alt 2. Nov 2002, 13:58
Moin d3g,

ich kenn', im Wesentlichen, nur NT 4 / W2K. Da hatte ich solche Probleme noch nie.
Und ich brauche diese Umleitungen öfter mal.

ME = More Errors
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:39 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