TProcess: Dateinamen übergeben

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

TProcess: Dateinamen übergeben

Beitrag von Socke »

Hallo,
die Problematiken mit dem Übergeben von besonderen Parameterformen mit TProcess sind ja durchaus bekannt (siehe http://bugs.freepascal.org/view.php?id=14446).
Versuche derzeit ein anderes Programm aufzurufen und einen Dateinamen zu übergeben. Dabei sollen keine Beschränkungen im Dateinamen zusätzlich zu denen des Betriebssystemes hinzukommen. Linux ist dabei aber so gut wie gar nicht restriktiv (bisher wurde mir nur der Schrägstrich verboten).
Gibt es eine Möglichkeit auch Parameter, die Zollzeichen (gemeinhin als Anführungszeichen bezeichnet) und Apostrophe enthalten, zu übergeben oder muss ich doch noch meine Parameter in PPChar konvertieren?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 11007
Registriert: Mo 11. Sep 2006, 19:01

Re: TProcess: Dateinamen übergeben

Beitrag von theo »

Wenn du keine besondere Kontrolle brauchst, ist vllt. Executeprocess (Array of AnsiString Variante) geeigneter?
http://www.freepascal.org/docs-html/rtl ... ocess.html" onclick="window.open(this.href);return false;

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: TProcess: Dateinamen übergeben

Beitrag von Socke »

Ursprünglich wollte ich auch StdOut auslesen; aber dann werde ich wohl darauf verzichten müssen und ExecuteProcess nehmen...

Edit:
ExecuteProcess vererbt die Stdio-Handles an den aufgerufenen Prozess. Für eine CGI-Anwendung als Webservice ist das sehr hinderlich.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten