AGB  ·  Datenschutz  ·  Impressum  







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

Ordnerinhalte in Listbox auflisten

Ein Thema von black_hawk · begonnen am 24. Jun 2005 · letzter Beitrag vom 25. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#1

Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 20:53
Moin, nicht hauen wegen dem Titel. Wie man Dateien aus einem Ordner in einer Listbox anzeigt weiss ich nun schon. Ich wusste nur nicht wie ich es beschreiben soll...

Also, mein Problem: Ich habe eine ComboBox die ich über eine Ini-Datei füttere. In der Ini-Datei sind die Einträge für die Combobox und eine Verzeichnisangabe mit diesem Schema:

[aaa]
Description=Test1
Directory=C:\Test
[bbb]
Description=Test2
Directory=D:\Hallo

In der ComboBox wird nun z.B. Test1 ausgewählt und nun möchte ich mir den Inhalt (evtl. nur bestimmte Formate) in einer Listbox anzeigen lassen. Ich habe schon eine Dateisuche. Ich weiss allerdings nicht wie ich das hinbekomme, das ich nicht mehr in einem festen Verzeichnis suche, sonder in dem Verzeichnis was über die ComboBox ausgewählt wurde.

Hoffe die Frage ist einigermaßen Verständlich.

Hier mal der Quelltext den ich zum Durchsuchen nehme:

Delphi-Quellcode:
procedure GetFilesinDirectory(Directory: String; const Mask: String;
          List: TStrings; WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if (SR.Attr = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
      if ClearList then
         List.Clear;
      if Directory = 'then Exit;
      if Directory[Length(Directory)] <> '\then
         Directory := Directory + '\';
      ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
Hiermit rufe ich bis jetzt die Suche auf. Könnte aber auch gleich eingelesen werden wenn ich auf einen ComboBox-Eintrag klicke.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var F: TSearchRec;
var I: Integer;
begin
  GetFilesInDirectory('C:\DelphiTestverzeichnis', '*.avi*', ListBox1.Items, True, True);
    if FindFirst('C:\DelphiTestverzeichnis', faAnyFile, F) = 0 then try
      Edit1.Text := F.Name;
    finally
      FindClose(F)
  end;
Für Tipps wäre ich sehr Dankbar!

mfg black_hawk

[edit=alcaeus]code- durch delphi-Tags ersetzt. In Zukunft bitte die richtigen Tags verwenden. Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 20:57
Mit

ComboBox1.Text bzw

ComboBox1.ItemIndex wobei ersteres hier einfacher wäre, bekommst du den Text (hier: Pfad), der in der Combobox steht. Nun musst du diesen nur an deine Funktion übergeben.
  Mit Zitat antworten Zitat
black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:01
Das ging ja flink!

Werde ich gleich mal versuchen. Danke!

mfg black_hawk
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:05
Ich hab gerade gesehen, dass ich teilw. Mist geschrieben habe. ALso bei dir steht in der ComboBox natürlich nicht der Pfad, sondern die Section der Ini. Du musst halt bei der Ini Abfrage anstelle der Section ComboBox1.Text übergeben.
  Mit Zitat antworten Zitat
black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:16
Irgendwie bekomme ich das nicht hin. Ich muss dazu sagen das ich noch nicht so lange mit Delphi arbeite. Ich hatte vor beim OnChange-Ereignis der Combobox das passende Verzeichnis zum Eintrag anzeigen zu lassen. So wie ich dich verstanden habe, brauche ich den Such-Code nicht ändern sondern muss nur beim Aufruf die Ini-Infos mit übergeben? Oder bin ich da jetzt komplett auf dem falschen Weg?

Kannst du mir mal bitte ein Beispiel geben?

Danke!

mfg black_hawk
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:19
Beim Aufruf der Prozedur, die die Dateien auflisten soll, übergibst du als Parameter ja den Ordner, dessen Inhalt aufgelistet werden soll. Du sagtest eben, du hast den Verzeichnisnamen bereits ermittelt (er steht vermutlich in einer Variablen) und diesen übergibst du dieser Prozedur einfach.

Nachtrag: Achso, "du hattest vor", dann musst du ihn über

Ini.ReadString(ComboBox1.Text, 'Directory', ''); ermitteln
  Mit Zitat antworten Zitat
black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:23
Also, die Verzeichnisse stehen in der ini-Datei.
Aufrufen tue ich das Verzeichnis aus der ini etwas so:

    s2 := ini.ReadString(sec[i],'Directory',''); Und das müsste ich jetzt einfach der Abfrage übergeben?

mfg black_hawk
  Mit Zitat antworten Zitat
black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:27
Oh, den letzten Post habe ich gar nicht gesehen. Hatte kurz ein Problem mit meiner Internet-Connection.

Da war ich ja schon auf dem richtigen Weg.

mfg black_hawk
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:27
Ja, dein Weg stimmte.

Den Verzeichnisnamen übergibst du, wie oben schon gesagt, deiner Prozedur, da diese als ersten Parameter das Verzeichnis erwartet, in dem sich die dateien befinden, die aufgelistet werden sollen.

GetFilesInDirectory(VariableMitVerzeichnisnamen, '*.avi*', ListBox1.Items, True, True);
  Mit Zitat antworten Zitat
black_hawk

Registriert seit: 16. Mai 2005
Ort: Worin
14 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Ordnerinhalte in Listbox auflisten

  Alt 24. Jun 2005, 21:29
Alles klar, dann werde ich mich gleich nochmal ran setzten.

Danke!


mfg black_hawk
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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