Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Perlskripte aus einer Delphi-Anwendung heraus aufrufen? (https://www.delphipraxis.net/14098-perlskripte-aus-einer-delphi-anwendung-heraus-aufrufen.html)

mjenke 2. Jan 2004 10:33


Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Hallo, alle miteinander und ein frohes neues Jahr aus Bonn!

Weiss jemand, ob und wie ich Perl-Skripte aus einer Delphi-Anwendung heraus aufrufen kann? Nehmen wir an, ich hätte auf meinem Rechner Perl installiert (das Skript als solches wäre also ausführbar) und wollte über eine in Delphi geschriebene Oberfläche auswählen können, welches Perl-Skript ich starten möchte.
Gibt es eine Möglichkeit, ein Perl-Skript direkt anzustossen und möglicherweise auch das im Perl geschriebene STDOUT entgegenzunehmen?
Oder wäre es einfach ein ans System übergebener Befehl, so als ob ich direkt in die Konsole schriebe? (und wenn ja, wie würde das vonstatten gehen?)

:?:
Matthias

sakura 2. Jan 2004 10:37

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Das mit dem entgegennehmen das Output ist kompilizierter, aber ich glaube dazu gab es hier auch schon mal einen Beitrag, musst Du mal suchen, ich weiß nur nicht wonach.

Ansonsten einfach mit [dp]ShellExec*[/dp] starten.

...:cat:...

cYaONE 2. Jan 2004 11:11

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Ist es denn nicht möglich, das Perl Script in Objekt-Pascal Code zu konvertieren und das ganze dann zu kompilieren? Was möchtest du genau damit machen?

mjenke 2. Jan 2004 11:40

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Das Perl-Skript soll auf jeden Fall Perl-Skript bleiben. Ich will einfach die Vorteile von Perl nutzen, die es mir bei der Verarbeitung von Texten mit regulären Ausdrücken bietet. Ich habe Konverter (konvertieren Satzdaten aus elektronischen Satzsystemen in XML-Daten) als Perl-Skripte vorliegen, die ich über eine Delphi-Oberfläche verwalten möchte. Mit anderen Worten: Anstossen und das Ergebnis entgegennehmen.

:-)
Matthias

neolithos 2. Jan 2004 11:44

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Zu StdOut:

Versuch mal die Stichworte Pipe und Console bei google.

Und berichte über das Ergebnis, interessiert nämlich mich auch mal!

neolithos 2. Jan 2004 11:50

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
such mal bei Microsoft nach

Zitat:

Zitat von MSDN
Creating a Child Process with Redirected Input and Output

+ Querverweise:

GetStdHandle
SetStdHandle
Pipes
usw.

Chewie 2. Jan 2004 12:12

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Bei CreateProcess gibt es im Record StartupInfo (Parameter lpStartupInfo) den Member hStdOutput. Wenn du hier z.B. das Handle einer Datei angibst, müsste die Ausgabe der Konsole in diese Datei geschrieben werden. Diese Datei kannst du auslesen.

cYaONE 2. Jan 2004 12:16

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Unter Delphi gibt es auch Reguläre Ausdrücke, falls es dir was helfen sollte: http://anso.virtualave.net/

mjenke 6. Jan 2004 07:02

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
@sakura

Hallo, Sakura,

was hat es mit "SHELLEXEC" auf sich? Wie funktioniert es, und wo finde ich es?

:?:
Matthias

mjenke 12. Jan 2004 07:12

Re: Perlskripte aus einer Delphi-Anwendung heraus aufrufen?
 
Falls es noch von Interesse für andere ist:

Über WinExec (Windows SDK) lässt sich ein Perlskript ausführen. Wurde mir von anderer Seite angetragen, und es hat funktioniert. Die andere Methode wäre per createProcess und terminateProcess einen eigenen Prozess zu starten, was aber ungleich aufwändiger ist.

:)
Matthias


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.
Seite 1 von 2  1 2      

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