Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Leerzeichen in Parametern (https://www.delphipraxis.net/61836-leerzeichen-parametern.html)

Matze 26. Jan 2006 22:40


Leerzeichen in Parametern
 
Hi :hi:

Im Normalfall kann ich, wenn ich Dateinamen als Parameter übergebe, die Anwendung, die die datei öffnen soll, so aufrufen (in der Konsole):

Code:
foo.exe "D:\dir\a different dir\blubb.txt"
Doch bei einigen Anwendungen geht das nicht, da wird das obige Beispiel als 3 Dateinamen aufgefasst (Trennung immer beim Leerzeichen). Kann man Leerzeichen in der Konsole irgendwie anders darstellen?
Beispiel: Browser - %20


Btw: Ob das nun ein Windows oder ein Programmierproblem ist, ist ein Streitfall. ^^

jbg 26. Jan 2006 22:47

Re: Leerzeichen in Parametern
 
Zitat:

Zitat von Matze
Btw: Ob das nun ein Windows oder ein Programmierproblem ist, ist ein Streitfall. ^^

Es ist ein Programmierproblem. Windows liefert nur die function GetCommandLine: PChar; Und die liefert alles ungeparst zurück, also in deinem Fall:
Code:
foo.exe "D:\dir\a different dir\blubb.txt"
Manch altes Programm denkt nicht an die Anführungszeichen, weil sie zu DOS Zeiten nicht ganz so geläufig waren, wenn auch schon vorhanden.

Matze 26. Jan 2006 22:48

Re: Leerzeichen in Parametern
 
Zitat:

Zitat von jbg
Manch altes Programm denkt nicht an die Anführungszeichen, weil sie zu DOS Zeiten nicht ganz so geläufig waren, wenn auch schon vorhanden.

Und was kann man dagegen machen außer sie zu kurzen Dateinamen zu konvertieren? Denn genau diese möchte ich loswerden, da das bescheuert aussieht. :(

SirThornberry 26. Jan 2006 22:54

Re: Leerzeichen in Parametern
 
warum nutzt du dann nicht einfach die Funktion GetCommandLine und interpretierst es als einen Parameter. Oder setzte alle Parameter einfach zusammen (also die einezelnen ParamStr())

Matze 26. Jan 2006 22:57

Re: Leerzeichen in Parametern
 
Zitat:

Zitat von SirThornberry
warum nutzt du dann nicht einfach die Funktion GetCommandLine und interpretierst es als einen Parameter. Oder setzte alle Parameter einfach zusammen (also die einezelnen ParamStr())

Äh, was meinst du genau? Also die Anwendung, die die Leerzeichen nicht interpretiert stammt nicht von mir und kann auch nicht geändert werden.

SirThornberry 26. Jan 2006 22:59

Re: Leerzeichen in Parametern
 
achso, aber wie bereits geschrieben hat gibt es letztendlich nur einen Parameter und wie dieser geparst wird hängt von der Anwendung ab.

Matze 26. Jan 2006 23:06

Re: Leerzeichen in Parametern
 
Zitat:

Zitat von SirThornberry
achso, aber wie bereits geschrieben hat gibt es letztendlich nur einen Parameter und wie dieser geparst wird hängt von der Anwendung ab.

Ja so ein Mist.

Danke euch beiden. :(


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