![]() |
Lange Dateinamen als Parameter
Hallo,
ich bezieh mich mal mit diesem Post auf ![]() 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:
Wie kann ich das umgehen?
if paramcount > 0 then
form1.textfeld.lines.LoadFromFile(paramstr(1)) else lblNewClick(sender); ps: Ich bin noch totaler nOOb, habe erst einen Monat Delphi-Erfahrung. ![]() |
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:
Greetz
form1.textfeld.lines.LoadFromFile('"'+paramstr(1)+'"')
alcaeus |
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:
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.
c:\wo\auch\immer\deinprog.exe "%1"
MfG Muetze1 |
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? |
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 07:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz