Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Lange Dateinamen als Parameter (https://www.delphipraxis.net/33373-lange-dateinamen-als-parameter.html)

str24 5. Nov 2004 23:47


Lange Dateinamen als Parameter
 
Hallo,
ich bezieh mich mal mit diesem Post auf diesen Thread von bifi (zu richedit). Ich habe mir auch einen Texteditor geschrieben, hab den jetzt auch sowie in dem anderen Thread von Bifi beschrieben als Standard-Editor für *.txt-Dateien eingerichtet. Jetzt habe ich nur ein Problem:
Der Editor öffnet zwar die Dateien, kommt aber überhaupt nicht mit langen Dateinamen zurecht(z.B. wenn ich eine File aus eigene Dateien öffnen will, sagt er "C:\eigene kann nicht geöffnet werden".).
Zum Quellcode, ich hab einfach beim OnCreate-Ereignis des MainForms reingeschrieben:

Delphi-Quellcode:
if paramcount > 0 then
form1.textfeld.lines.LoadFromFile(paramstr(1))
else
lblNewClick(sender);
Wie kann ich das umgehen?

ps: Ich bin noch totaler nOOb, habe erst einen Monat Delphi-Erfahrung.diesen Thread

alcaeus 5. Nov 2004 23:54

Re: Lange Dateinamen als Parameter
 
Hi str24,

erstmal herzlich willkommen in der DP :hi: :dp:

Zum Thema: Lass dir mal den Pfad mit ShowMessage anzeigen. Wenn keine doppelten Anführungszeichen (") enthalten sind, kannst du versuchen den Pfad mit diesen zu umschließen, also z.B. so:
Delphi-Quellcode:
form1.textfeld.lines.LoadFromFile('"'+paramstr(1)+'"')
Greetz
alcaeus

Muetze1 6. Nov 2004 01:48

Re: Lange Dateinamen als Parameter
 
Moin!

Es ist so, das bei deinem Aufruf des Programms diese doppelten Anführungszeichen fehlen. Du müsstest in deiner Verknüpfung über die du dein Programm öffnest die Verknüpfung in Anführungszeichen setzen.

Code:
  c:\wo\auch\immer\deinprog.exe "%1"
und dann ist der Pfad auch mit Leerzeichen in ParamStr(1). Beim parsen der Argumente wird bei den C/C++/Delphi Startupcodes die Anführungszeichen als umschliessendes Zeichen für ein Argument beachtet beim parsen.

MfG
Muetze1

str24 6. Nov 2004 11:57

Re: Lange Dateinamen als Parameter
 
Hallo,
danke für die schnellen Antworten. Nur leider funktionieren sie nicht.
Ich hab die erste Antwort ausprobiert, aber da zeigt er dann bloß an (Cannot open file "c:\eigene".
Und wenn ich probiere eine Datei in Anführungszeichen zu öffnen("C:\Eigene Dateien\Lieder.txt"), dann spuckt er auch (cannot open file c:\eigene) aus. Kann ich nich dem Programm irgendwie gleich einen kurzen Dateinamen(ala c:\eigene~1\lieder.txt) als Parameter übergeben?

himitsu 6. Nov 2004 13:09

Re: Lange Dateinamen als Parameter
 
Da bei LoadFromFile der reine Dateiname angegeben werden muß, konnte der falsche Tipp mit den " natürlich nicht funktionieren.

Außerdem kommt dieses LoadFromFile sehr gut mit langen Dateinamen zurecht ... ich vermute mal, das es nicht am LoadFromFile liegt ... vielmehr wirst du wohl im Dateinamen selber (an/in der Variable), oder wo anderes 'nen Fehler haben.


Da die Parameter durch Leerzeichen getrennt werden, mußt du sie aber, bei deer Übergabe an dein Programm in " setzen, wie das Muetze1 schon zeigte.


du mußt dort immer alles in " setzten, was zusammengehört.

Beispiele:
"dein Programm" "Parameter 1" Parameter2 Parameter3 "Parameter 4"

deinProgramm "Parameter 1" Parameter2 Parameter3 "Parameter 4"


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