AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lange Dateinamen als Parameter

Ein Thema von str24 · begonnen am 6. Nov 2004 · letzter Beitrag vom 6. Nov 2004
Antwort Antwort
str24

Registriert seit: 6. Nov 2004
Ort: Egglkofen
2 Beiträge
 
Delphi 6 Personal
 
#1

Lange Dateinamen als Parameter

  Alt 6. Nov 2004, 00:47
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
Markus Jochim
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Lange Dateinamen als Parameter

  Alt 6. Nov 2004, 00:54
Hi str24,

erstmal herzlich willkommen in der 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:form1.textfeld.lines.LoadFromFile('"'+paramstr(1)+'"') Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Lange Dateinamen als Parameter

  Alt 6. Nov 2004, 02:48
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
  Mit Zitat antworten Zitat
str24

Registriert seit: 6. Nov 2004
Ort: Egglkofen
2 Beiträge
 
Delphi 6 Personal
 
#4

Re: Lange Dateinamen als Parameter

  Alt 6. Nov 2004, 12:57
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?
Markus Jochim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Lange Dateinamen als Parameter

  Alt 6. Nov 2004, 14:09
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"
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 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