AGB  ·  Datenschutz  ·  Impressum  







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

Inhalt eines Ordners auslesen

Ein Thema von Seppel · begonnen am 23. Okt 2007 · letzter Beitrag vom 25. Okt 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Seppel
Seppel

Registriert seit: 14. Jun 2005
139 Beiträge
 
#1

Inhalt eines Ordners auslesen

  Alt 23. Okt 2007, 19:01
Hi,

z.B in einem Ordner sind Bilder gespeichert und der Ordner heißt "Test" in meiner DB gibt es eine Person namens Test und zu der gehört der Ordner, der Pfad zu dem Ordner ist auch in der DB gespeichert.

Ich möchte jetzt also, dass die Bilder(in dem Ordner "Test") in einer Combobox oder etwas anderem aufzurufen sind und wenn man das BIld auswählt und auf Öffnen drückt öffnet sich dies.

Wie bekomme ich hin, dass der Inhalt und ausschließlich, .jpg oder .gif datein angezeigt werden.
Zudem müssen sie ja noch geöffnet werden.
Ich suche schon ne weile mir fällt nur keine Methode ein wie ich das hinbekommen soll.
Also der Pfad zu dem Ordner ist vorhanden in der DB und wenn der User angewählt wird, und in den Bereich kommt wo man alles überihn noch ma genau sieht und ändern kann, sollen Bilder über ihn auch anwählbar sein.

Ich hoffe ihr könnt mir helfen.
Danke.
Sebastian
www.seppel.de.pn
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Inhalt eines Ordners auslesen

  Alt 23. Okt 2007, 19:11
Delphi-Quellcode:
procedure GetFileList(Path: String; ZielListe: TStringList);
var
  SR: TSearchRec;
begin
  if Path[length(Path)] <> '\then
    Path := Path + '\';
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
    repeat
      if (Lowercase(ExtractFileExt(Path + sr.Name)) = '.jpg') then
        ZielListe.Add(Path + sr.Name);
    until FindNext(SR) <> 0;
  FindClose(SR);
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
    repeat
      if (SR.Attr = faDirectory) and
         (SR.Name <> '.') and (SR.Name <> '..') then
           GetFileList(Path + SR.Name + '\', ZielListe);
    until FindNext(SR) <> 0;
  FindClose(SR);
end;
dabei werden auch unterordner durchsucht.
kannst du so aufrufen:
Delphi-Quellcode:
procedure TForm1.Button1Click;
var
  List: TStringList;
  I: Integer;
begin
  List := TStringList.create;
  try
    GetFileList('<MeinPfad>', List);
    for I := 0 to List.Count do
      LoadMyImage(List[I]); // image laden
  finally
    FreeAndNil(List);
  end;
end;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von Seppel
Seppel

Registriert seit: 14. Jun 2005
139 Beiträge
 
#3

Re: Inhalt eines Ordners auslesen

  Alt 23. Okt 2007, 19:14
Kannst du mir das ein bisschen erläutern, ich würd auch gerne etwas lernen und wo muss ich was ändern.
Sebastian
www.seppel.de.pn
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Inhalt eines Ordners auslesen

  Alt 23. Okt 2007, 19:31
ok
und ich hab beim durchgehen gesehen das man da noch was vereinfachen kann

Delphi-Quellcode:
procedure GetFileList(Path: String; ZielListe: TStringList);
var
  SR: TSearchRec;
begin
  if Path[length(Path)] <> '\then // erstmal schauen wir ob der übergebene pfad
    Path := Path + '\'; // mit einem \ aufhört, zB C:\Test\
  if FindFirst(Path + '*.jpg', faAnyFile, SR) = 0 then // nach der ersten datei suchen die mit .jpg endet
                                                       // * wird dabei als platzhalter verwendet
                                                       // in SR wird der fund gespeichert
    repeat
      ZielListe.Add(Path + sr.Name); // pfad zum bild merken
    until FindNext(SR) <> 0; // mit FindNext wird die suche wiederholt
  FindClose(SR); // suche abschließen
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then // das ganze noch mal von vorne mit ordnern
    repeat
      if (SR.Attr = faDirectory) and // schauen ob fund ein ordner ist
         (SR.Name <> '.') and (SR.Name <> '..') then // "
           GetFileList(Path + SR.Name + '\', ZielListe); // rekursiver aufruf unserer procedure mit unterordner
    until FindNext(SR) <> 0; // suche widerholen
  FindClose(SR); // suche abschließen
end;

procedure TForm1.Button1Click;
var
  List: TStringList;
  I: Integer;
begin
  List := TStringList.create; // unsere StringList erzeugen
  try // speicherschutzblock
    GetFileList('<MeinPfad>', List); // unsere prozedure, deinen pfad hier eintragen!
    for I := 0 to List.Count do // alle elemente der liste durchgehen...
      LoadMyImage(List[I]); // ... und laden (ist jetzt nur nen beispiel)
  finally
    FreeAndNil(List); // speicher freigeben
  end;
end;
das laden vom bild musst du übernehmen^^
setz dir am anfang der prozedure nen breakpoint, dann siehst du mit jedem knopfdruck auf F8 wo er gerade hinspringt.
Bei weiteren Fragen fragen.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von Seppel
Seppel

Registriert seit: 14. Jun 2005
139 Beiträge
 
#5

Re: Inhalt eines Ordners auslesen

  Alt 23. Okt 2007, 19:40
ok thx, morgen werd ich probieren.
Sebastian
www.seppel.de.pn
  Mit Zitat antworten Zitat
Benutzerbild von Seppel
Seppel

Registriert seit: 14. Jun 2005
139 Beiträge
 
#6

Re: Inhalt eines Ordners auslesen

  Alt 24. Okt 2007, 12:46
Was muss ich bei LoadMyImage einsetzen??
Sebastian
www.seppel.de.pn
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#7

Re: Inhalt eines Ordners auslesen

  Alt 24. Okt 2007, 13:16
Zitat von Seppel:
Was muss ich bei LoadMyImage einsetzen??
Das was du mit deiner Bilderliste, die du erstellt hast, anfangen willst. Steht doch dahinter, dass es nur ein Beispiel ist. Du kannst die ganze for-Schleife weglassen, falls du das an dieser Stelle nicht brauchst, oder du weist die List einer Listbox zu (assign) usw. usw.
  Mit Zitat antworten Zitat
Benutzerbild von Seppel
Seppel

Registriert seit: 14. Jun 2005
139 Beiträge
 
#8

Re: Inhalt eines Ordners auslesen

  Alt 24. Okt 2007, 13:24
ok.
Sagen wir ich möchte, die Datein(also alle Bilder) in dem Ordner in einer Combobox angezeigt bekommen, wie stelle ich das dann an.
Sebastian
www.seppel.de.pn
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Inhalt eines Ordners auslesen

  Alt 24. Okt 2007, 13:36
Meine Version ohne Unterordner:
Delphi-Quellcode:
procedure ListAllPics(sPath: string; List: TStrings);
var Rec: TSearchRec;
begin
  List.BeginUpdate;
  List.Clear;
  if sPath[Length(sPath)] <> '\then
    sPath := sPath + '\';
  if FindFirst(sPath + '*.*',faAnyfile,Rec) = 0 then
    begin
      repeat
        if (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.jpg') or
           (AnsiLowerCase(ExtractFileExt(Rec.Name)) = '.gif') then
          List.Add(Rec.Name);
      until FindNext(Rec) <> 0;
      FindClose(Rec);
    end;
  List.EndUpdate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListAllPics('F:',ComboBox1.Items);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#10

Re: Inhalt eines Ordners auslesen

  Alt 24. Okt 2007, 15:14
Zitat von Seppel:
ok.
Sagen wir ich möchte, die Datein(also alle Bilder) in dem Ordner in einer Combobox angezeigt bekommen, wie stelle ich das dann an.
siehe Antwort von DeddyH.

Um aber beim Code von dominikkv zu bleiben:


ComboBox1.Items.Assign(List); Und dies anstelle von:
Delphi-Quellcode:
for I := 0 to List.Count do // alle elemente der liste durchgehen...
  LoadMyImage(List[I]);
Die Liste, die erstellt wird ist vom Typ TStringList und die Eigenschaft Items der Combobox ebenfalls. Mit Assign werden die Inhalte der einen Liste in die andere Liste kopiert.

Natürlich wäre es auch richtig:
 GetFileList('<MeinPfad>', ComboBox1.Items); zu schreiben. Dann kannst du dir die Instanz "List" sparen und die File Liste wird direkt in die Stringliste Items der Combobox geschrieben.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 16:01 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