Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DateiAttribute aus ListBox auslesen (https://www.delphipraxis.net/8937-dateiattribute-aus-listbox-auslesen.html)

Gregor00 18. Sep 2003 15:28

Re: DateiAttribute aus ListBox auslesen
 
die If - abfrage ist auch nicht das problem.
Das problem ist, ich weiß nicht was ich an der procedure ändern muss damit KEINE Unterordner durchsucht werden. Alle Versuche haben bis jetzt zu einer Endlosschleife geführt...

Tpercon 18. Sep 2003 15:33

Re: DateiAttribute aus ListBox auslesen
 
Der Teil der für die Rekursion da ist, ist ja folgender
Delphi-Quellcode:
Suche(ext, Edit2.Text + '\' + sr.Name);
Warum steht da eigentlich Edit2.Text :gruebel: , da muß auch pfad hin! Das hätte so doch garnicht funktionieren können?! Poste mal deinen bisherigen Code!

Gregor00 18. Sep 2003 15:59

Re: DateiAttribute aus ListBox auslesen
 
ja hast recht "pfad" muss dahin, vorher ging es auch es wurden aber nicht alle ordner komplett durchsucht, deshalb ist es mir nicht gleich aufgefallen:

Hier nochmal die procedure inklusieve Unterordnern durchsuchen:

Delphi-Quellcode:
procedure TFormDateienSuchen.UnterordnerDurchsuchen(ext: Str3; Pfad : String);
  var sr: TSearchRec;
       r: Integer;
begin
  r:= FindFirst(Pfad + '\*.*' , faAnyFile,sr);
  if r = 0 then begin
  try
  while r = 0 do
  Begin
      if (sr.Name <> '.') and (sr.Name <> '..') then
        begin
        If (sr.Attr and FaDirectory) = faDirectory then
          begin
            UnterordnerDurchsuchen (ext,pfad + '\' + sr.Name);
            ListBoxOrdner.Items.Add(Pfad + '\' + sr.Name);
          end
       else
       if AnsiUpperCase(ExtractFileExt(sr.Name)) = '.'+ AnsiUpperCase(ext) then
          ListBoxDateien.Items.Add(pfad + '\' + sr.Name);
       end;
     //  Application.ProcessMessages;
       r:= FindNext (sr);
     end;
     finally
     FindClose (sr);
     end;
   end;

end;
Hier die procedure ohne Unterordner durchsuchen:

Delphi-Quellcode:
procedure TFormDateienSuchen.Durchsuchen(ext: Str3; Pfad : String);
  var sr: TSearchRec;
       r: Integer;
begin
  r:= FindFirst(Pfad + '\*.*' , faAnyFile,sr);
  if r = 0 then
  begin
    try
    while r = 0 do
    Begin
      if (sr.Name <> '.') and (sr.Name <> '..') then
        Begin
          ListBoxDateien.Items.Add(pfad + '\' + sr.Name);
        end;
      end;
       Application.ProcessMessages;
       r:= FindNext (sr);
 //  end;
       finally
       FindClose (sr);
  end;
 end;
end;
so funtioniert es aber nicht. es wird zwar compiliert, hängt aber dann bei aktivierung der procedure in einer endlosschleife...

greg

Gregor00 18. Sep 2003 17:55

Re: DateiAttribute aus ListBox auslesen
 
hey ich komm so nicht weiter...das problem ist warscheinlich gant einfach ich find die lösung aber trotzdem nicht...also helft mich noch ein letztes mal :oops:

danke
gregor

Tpercon 19. Sep 2003 07:52

Re: DateiAttribute aus ListBox auslesen
 
Erstens hat Sakura :gruebel: in der Code Library schon mal nen passenden Code gepostet und zweitens ist ja wohl diese Zeile
Delphi-Quellcode:
UnterordnerDurchsuchen (ext,pfad + '\' + sr.Name);
fürs rekursive durchsuchen verantwortlich.

Also änder die in die folgenden Zeilen:
Delphi-Quellcode:
if CheckBox1.Checked then begin
  UnterordnerDurchsuchen (ext,pfad + '\' + sr.Name);
end;
Das müßte theoretisch funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.
Seite 2 von 2     12   

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