Autor Beitrag
tortom1000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 175

Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
BeitragVerfasst: Di 29.07.14 18:18 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
tortom1000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 175

Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
BeitragVerfasst: 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