AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

Offene Frage von "danku"
Ein Thema von cruso · begonnen am 21. Apr 2006 · letzter Beitrag vom 29. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 28. Apr 2006, 20:34
Hallo danku,

im Code von turboPASCAL (Beitrag #8) steht bereits die Lösung deines Problems. Bei mehreren ausgewählten Dateien erfolgt der Zugriff nicht über OpenDialog.FileName sondern über das Array OpenDialog.Files[].

In deinem Beispiel sieht das dann so aus:

Delphi-Quellcode:
for i := 0 to OpenDialog1.Files.Count - 1 do
  sgfiles.cells[0, 1 + i]:= OpenDialog1.Files[i];
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 28. Apr 2006, 20:40
jo das könnt so passen.
auf das [i] hätte ich auch kommen können...
zumal ich schon mal das dastehen hatte..

ich mach jetzt mal jetzt mal die einträge abhängig von der zeile beim einfügen

Edit:

Delphi-Quellcode:
//Füllen der StringGrid mit Opendialog1Daten
          for i := 0 to OpenDialog1.Files.Count - 1 do
            sgfiles.cells[0,1 + i]:= OpenDialog1.Files[i];
            if OpenDialog1.Files.Count >= sgfiles.rowcount
            then sgfiles.RowCount:=sgfiles.RowCount+1;
            end;
          end;
Natürlich musste wieder ein Extremfall passieren...

Wenn man mehrere Dateien im opendialog wählt, geht das ja,
aber so bald man dateien aus der 2.spalte im dialog auswählt
gibts probs...

Wobei ich gerade merkte das (rowcount=2) sobald mehr als

wieso?
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 29. Apr 2006, 09:49
kann mir da einer helfen?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 29. Apr 2006, 11:04
Hallo danku,

warum erhöhst du die Zeilenzahl des Grids bei jedem Durchlauf? Du kennst doch die Anzahl der ausgewählten Dateien und kannst somit die Zeilenzahl vor der Schleife setzen:

Delphi-Quellcode:
// 1 Headerzeile + 1 Zeile pro ausgewählter Datei
sgfiles.RowCount := OpenDialog1.Files.Count + 1;

// Füllen des StringGrids mit den Namen der ausgewählten Dateien
for i := 0 to OpenDialog1.Files.Count - 1 do
  sgfiles.Cells[0, 1 + i] := OpenDialog1.Files[i];
PS: Pushen von Beiträgen frühestens nach 24 Stunden

//Edit: ich sehe gerade, daß ein Logikfehler in deinem Code vorliegt. Die FOR-Schleife überträgt nur alle Dateien, danach erhöhst du evtl. die Zeilenzahl im Grid um 1. Die Einrückung läßt vermuten, daß ein BEGIN fehlt. Die Zeilenzahl solltest du trotzdem vor der Schleife setzen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 29. Apr 2006, 12:13
es geht ohne dein "begin"

Delphi-Quellcode:
  //Füllen der StringGrid mit Opendialog1Daten
   i:=opendialog1.files.count-1;
   sgfiles.RowCount := OpenDialog1.Files.Count + 1;

   for i := 0 to OpenDialog1.Files.Count - 1 do
   begin
   sgfiles.cells[0,1 + i]:= OpenDialog1.Files[i];
   end;
   inc(i);
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#16

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 29. Apr 2006, 12:34
Das BEGIN hätte auch nur deinen alten Code korrigiert, der neue ist auf jeden Fall besser. Die erst und die letzte Zeile kannst/solltest du allerdings noch ersatzlos streichen. Die erste Zuweisung zur Variablen i wird durch die FOR-Schleife sowieso überschrieben, beim "Inc (i)" greifst du nach der FOR-Schleife auf die Schleifenvariable zu. Deren Inhalt ist aber hinter der Schleife undefiniert.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 29. Apr 2006, 14:17
wie kann ich erreichen das die komplette stringgrid "durchcompiliert" wird und die leerzeichen gelöscht werden?

Delphi-Quellcode:
if rgmenue.ItemIndex = 0
      then begin

      PROBLEM 1

      for i:= 0 to 1000 do //Komplett search_text in Zelle gelöscht ->beschleunigt abschnittsw. l.
            begin
            Position := 1;
            S := sgfiles.Cells[0,1];
              for zaehlen := 0 to length(S) do //search_text abschnittsweise löschen
                begin
                //Position des Search_Text ('_')
                  Position := GetPosNumX(Search_Text, S, Position);
                //Löscht diese Stelle
                  Delete(S, Position, length(Search_Text));

                  PROBLEM 2

                  end;
              sgfiles.Cells[0,1]:= S;
              inc(a,i);
              end;

              ///// Löschen
              for i:= 0 to 1000 do
                begin
                Position := 1;
                S := sgfiles.Cells[0,1];

                  for zaehlen := 0 to length(S) do
                    begin
                      Position := GetPosNumX(Search_Text, S, Position);
                      Delete(S, Position, length(Search_Text));

                      end;
                  sgfiles.Cells[0,1]:= S;
                  inc(a,i);
                  end;
problem1:
Es wird jeweils zuerst nur in der Zelle nach dem (Search_Text = '_') gesucht und dieser gelöscht. aber das passiert nur abschnittsweise. und nicht in der gesamten zelle komplett.

problem2:
wäre es besser eine replace-prozedur zur schreiben, um '_' durch '' zu ersetzen oder doch lieber bei meiner jetzigen variante und dann noch nach dem löschen ein leerzeichen dazuzufügen?
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#18

Re: Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen

  Alt 29. Apr 2006, 14:30
Der Thread hat den Titel:

Zitat:
Mit OpenDialog mehrere Dateien gleichzeitig hinzufügen
und deine Frage ist:

Zitat:
wie kann ich erreichen das die komplette stringgrid "durchcompiliert" wird und die leerzeichen gelöscht werden?



Mach dazu bitte einen eigenen neuen Thread auf.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:43 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