Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ParamStr(1) Pfad mit Leerzeichen funktioniert nicht??????? (https://www.delphipraxis.net/37251-paramstr-1-pfad-mit-leerzeichen-funktioniert-nicht.html)

ralph 3. Jan 2005 12:40


ParamStr(1) Pfad mit Leerzeichen funktioniert nicht???????
 
Hallo zusammen

Ich übergebe meinem Programm über die Funktion ParamStr(1) den Pfad einer Datei.
Das funktioniert eigetlich einwandfrei, nur wenn der Pfad einen Lehrschlag enthält erhalte ich den Restpfad nicht mehr?

z.B.
D:\Logging\2004\Power Toys\Layoutversion

so erhalte ich in meiner Applikation nur folgendes:
D:\Logging\2004\Power

an was kann das liegen?

wie kann ich das beheben?

Danke schon im Voraus

viele Grüsse von ralph

Robert Marquardt 3. Jan 2005 12:42

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
Der Parameter muss dem Programm mit Anfuehrungszeichen uebergeben werden.
Das Leerzeichen ist nun mal der Trenner der Parameter.

Dax 3. Jan 2005 12:43

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
Ganz einfach: Den Pfad in doppelte Hochkommas (") einschließen.

Jelly 3. Jan 2005 12:43

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
Du musst die Parameter in doppelte Anführungszeichen einschließen ("Name der Datei")

Chewie 3. Jan 2005 12:43

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
Klar, dass das passiert, das Leerzeichen dient ja zum Trennen von Argumenten.
Falls ein Parameter ein leerzeichen enthält, so muss dieser in doppelte Anführungszeichen eingeschlossen sein:

Code:
Anwendung "mein Parameter"

Robert Marquardt 3. Jan 2005 12:55

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
So und nachdem nun dreimal die gleiche Antwort gekommen ist muss man natuerlich erklaeren wo das stattfindet.
Suche in der Registry die Zuordnung von Programm zu Extension.
Dort steht so etwas wie
MeinProgramm.exe %1
Das muss man in
MeinProgramm "%1"
aendern.

ralph 3. Jan 2005 13:01

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
öhm....

das ist mir klar danke...

nun habe ich aber folgendes Problem:

ich übergebe den pfad einer Datei welche über ein Kontextmenü ausgewählt wird meiner applikation

in meinem kontextmenühandler welcher meine applikation aufruft gebe ich als parameter mit...

dieser hat allerdings den typ pchar.

wie kann ich nun einen doppelten " mitgeben?

hat mir dazu jemand eine idee?

Aenogym 3. Jan 2005 13:06

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
hi,

zeig doch mal den code des kontextmenü-handlers. eigentlich sollte dort auch soetwas ähnliches wie in robert marquardts obigem post sein.
dort solltest du einfach die " " mit einfügen können.

Aenogym

Alfons_G 3. Jan 2005 13:06

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
Du kannst einfach einen String aus einem Paar doppelter Anführungszeichen und dem Dateinamen dazwischen zusammenbasteln, z.B. so:
Delphi-Quellcode:
aPChar := PChar('"' + MeinDateiName + '"');
... und schon hast Du einen Parameter in Anführungszeichen.

:coder:

ralph 3. Jan 2005 15:13

Re: ParamStr(1) Pfad mit Leerzeichen funktioniert nicht?????
 
super

danke es hat geklappt

merci


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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