AGB  ·  Datenschutz  ·  Impressum  







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

Paramstr Dateiübergabe Problem

Ein Thema von Obi-Wan · begonnen am 21. Jun 2006 · letzter Beitrag vom 21. Jun 2006
Antwort Antwort
Benutzerbild von Obi-Wan
Obi-Wan

Registriert seit: 16. Feb 2005
15 Beiträge
 
Delphi 2005 Personal
 
#1

Paramstr Dateiübergabe Problem

  Alt 21. Jun 2006, 13:18
Hallo liebe Forumsuser
Ich werde mich jetzt etwas kürzer fassen da mir eben der Firefox abgeschmiert ist und meinen Beitrag den ich innerhalb von 10 minuten getippt habe weg ist
Ok also ich übergebe meinen Programm Dateien als Parameter, indem ich diese Dateien markiere und auf die exe oder eine verknüpfung zu der exe ziehe. Später ist noch eine Shellerweiterung geplant. Diese werden dann an eine Listbox übergeben. Hier der passende Code:

Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
var i: integer;
begin
 if ParamCount > 0 then
 for i := 1 to ParamCount do
  begin
   ListBox1.Items.Add(ParamStr(i));
  end;
end;
Mein Problem ist das wenn ich ca. 40 Dateien von "M:\Eigene Dateien\Eigene Bilder" übergeben will diese Fehlermeldung erscheint:

http://www.cghost.de/mediahost/img18/errorLUvN.gif

Es wird dann nichts übergeben, jedoch wird bei 39 Dateien alles übergeben. Wenn ich ca. 50 Dateien in einen kurzen Pfad wie "D:\a" kopiere gehen diese alle ohne Probleme. Habe mich schon dumm und dusselig gesucht (Hier, in anderen Delphi Foren und google), aber nichts gefunden was auf mein Problem zutrifft.
Meine Vermutung ist, das ParamStr irgendeine Begrenzung hat was die gesamte Länge der angegebenen Parameter betrifft und bei meiner Fehlermeldung der/die letzte/n Parameter abgeschnitten wird/werden und diese Datei deshalb nicht geöffnet werden kann.
Deshalb poste ich hier und hoffe das jemand näheres darüber weiß oder vielleicht sogar einen Lösungsansatz hat. Vielen Dank im vorraus

MfG Florian
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Paramstr Dateiübergabe Problem

  Alt 21. Jun 2006, 14:15
Ich habe da so eine dunkle Ahnung, dass die Länge der Kommandozeile begrenzt ist.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   // Kommandozeile in einem Memo anzeigen
   memo1.Scrollbars := ssBoth;
   memo1.lines.Text := CmdLine;
   // CmdLine ist eine Variable, die mit der API-Funktion GetCommandLineA befüllt wurde

end;
Mit dem Schnipsel oben kannst du prüfen, wieviel Info übernommen werden.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Obi-Wan
Obi-Wan

Registriert seit: 16. Feb 2005
15 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Paramstr Dateiübergabe Problem

  Alt 21. Jun 2006, 15:14
Erstmal Danke für die antwort.
Hmm das kann natürlich sein. Habe das von dir oben ausprobiert und da gibts den gleichen Fehler mit zu viel Dateien. Wenns "normal" viele Dateien wie oben sind gibt der mir die Pfade alle aus. :/
Weißt du oder jemand anderes ob es irgendeine andere Methode gibt? Wenn nicht ist es auch kein großes Problem, wäre halt nur schön wenn es theoretisch möglich wäre. Sonst mache ich es vielleicht per Drag & Drop auf die Listbox wenn der User mehr Dateien bearbeiten möchte.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Paramstr Dateiübergabe Problem

  Alt 21. Jun 2006, 15:31
Zitat von Obi-Wan:
Weißt du oder jemand anderes ob es irgendeine andere Methode gibt?
Ich glaube, viele Anwendungen verwenden hier das veraltete DDE um die Limits zu umgehen.
Schau dir mal im Explorer -> Extras->Ordneroptionen den Dateityp .DOC an.
Winword wird dann so gestartet
Code:
"C:\Programme\Microsoft Office\OFFICE11\WINWORD.EXE" /n /dde
und erhält die DDE-Nachricht:
Code:
[REM _DDE_Direct][FileOpen("%1")]
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Obi-Wan
Obi-Wan

Registriert seit: 16. Feb 2005
15 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Paramstr Dateiübergabe Problem

  Alt 21. Jun 2006, 16:19
Danke für den stups in die richtige Richtung. Werde mir das mal zu gemüte führen. Danke, klasse Forum hier!
  Mit Zitat antworten Zitat
Benutzerbild von Obi-Wan
Obi-Wan

Registriert seit: 16. Feb 2005
15 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Paramstr Dateiübergabe Problem

  Alt 21. Jun 2006, 18:40
Ich dösbaddel, warum schwer wenns auch einfach geht? ^^
Mein Tool soll ja später nur über die Shellerweiterung funktionieren oder halt manuell über Drag&Drop auf die Listbox wenn man die Files in das Programm bringen möchte...
Das Drag&Drop geht ja (ist ja ned schwer )

Aber mit der ShellErweiterung hab ichs jetzt so gemacht:
Gaaanz einfach, effektiv und vor allem schnell gelöst. Die config-datei von dem Tool wird ja eh in den Anwendungsdaten (wo die imho auch hingehört) abgelegt und deshalb nehme ich genau da eine Textdatei namens "Files.txt".
Wenn ich jetzt über die ShellErweiterung die Dateien übergebe, werden diese von der dll in eine stringlist geschrieben und anschließend in diese Textdatei gespeichert. Anschließend wird diese beim starten des Programms eingelesen. Geht echt schnell, hab ich eben mal mit über 2100 Dateien getestet und man merkt nicht mal das was gemacht wurde ^^
Ich denke das ist ein guter Mittelweg von Geschwindigkeit und Aufwand *hoffe ich mal*

MfG Florian
  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 20:47 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