Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Variable aus String-Ausdruck extraieren


tortom1000 - Di 29.07.14 18:18
Titel: Variable aus String-Ausdruck extraieren
Hallo,

ich rufe mit Shellexecute ein externes Programm aus, dem ich einige Parameter mit auf den Weg geben möchte.

Die Parameter stammen aus einer Textdatei, werden vorher ausgelesen und dann beim Programmaufruf mitgegeben.

Hier geht es nicht um den Shellexecute-Befehl, sondern ausschließlich um das Variablen-Problem!
Der Aufruf klappt, lediglich die Auflösung der Variablen macht Probleme.

Beispiel:

C:\Programmordner\programm.exe -Pfad1 c:\Pfad1 -Pfad2 c:\Pfad2
Hinter den Aufrufparameter -Pfad1 steht der eigentliche Pfad usw...

Soweit alles OK.

Ich habe jetzt eine STRING-Variable namens Aufrufparameter im Delphi-Programm definiert.
In der Text-Datei steht lediglich: '-Pfad1 c:\Pfad1 -Pfad2 c:\Pfad2'
Dies weise ich der Variablen Aufrufparameter zu.

Mein Programmaufruf lautet nun:
C:\Programmordner\programm.exe Aufrufparameter

Das klappt auch, da die Parameter ja "hartverdrahtet" sind.

Nun möchte ich in der Textdatei Programm-interne Variablennamen für die Pfadangaben verwenden.
Ich lege 2 String-Variablen Pfad1 + Pfad2 an. Diesen Variablen weise ich die echten Pfade
zu: Pfad1:='c:\Pfad1' und Pfad2:='c:\Pfad2'

In die Textdatei schreibe ich nun '-Pfad1 ' + Pfad1 + '-Pfad2 ' + Pfad2
Nun wird im Programm der gesamte Ausdruck der Variablen Aufrufparameter zugewiesen.
Führe ich nun
C:\Programmordner\programm.exe Aufrufparameter
aus, stimmen die Aufrufparameter betreffend Pfad1 und Pfad2 nicht, die ja in der Aufrufparameter-Variablen als Variablen
Pfad1 und Pfad2 enthalten sind.

Hoffe, mich einigermaßen verständlich ausgedrückt zu haben...
Kennt jemand eine Lösung für dieses Problem?

Viele Grüße
Tortom


Narses - Di 29.07.14 22:42

Moin!

user profile icontortom1000 hat folgendes geschrieben Zum zitierten Posting springen:
Kennt jemand eine Lösung für dieses Problem?
Das Serienbrief-Problem... ;)

Definiere eigene Variablen, z.B. %PFAD1% und %PFAD2%, diese ersetzt du dann mit z.B. StringReplace vor dem Aufruf durch die Programmvariablen-Werte. :idea:

cu
Narses


tortom1000 - Mi 30.07.14 09:52

Hallo,

vielen Dank, Narses.

Dein Hinweis war die Initialzündung, die ich brauchte.

Hab's nun mit StringReplace hin bekommen.


(Tolles Forum - bin immer wieder gerne hier...)

Gruß
Tortom