Einzelnen Beitrag anzeigen

Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#1

Hilfe bei Progress Darstellung

  Alt 10. Mär 2005, 13:55
Hya,
ich schreibe derzeit ein Programm das automatisch beim Start bestimmte dateien sucht.
dabei wird höchster warscheinlcihkeit immer die gesamte partition und mehrere partitionen
hintereinander nach dateinen einer bestimmten maske gesucht wie '*.mpg' oder '*.txt'.
So der such algorithmus ist fertig mit find first/next und callback.
Jedoch möchte ich dazu natürlich auch einen progress.
Weiß jemand was man als ProgressBarMaxValue nehmen könnte in dieser situation?
Meine Idee ist alle verzeichnisse der suchpartition durch zählen und als max zu nehmen
und wenn er rekursiv sucht könnte man immer wen er in ein verzeichnis geht sozusagen
den progress um 1nes erhöhen. jedoch läuft meine FolderCount routine mit
findfirst recht langsam für einmal C:\ ordner zählen ca 1ne Min. und nur um die
progressbar zu initialisieren pro partition ist ne minute zu lang.
jemand vorschläge wie man sonst den progress hinbekommt?

amsonsten vieleicht jemand einen vorschlag wie mein countfolders schneller geht?
Delphi-Quellcode:
function CountFolders(AFolder : string) : integer;
var
  ASearchRec : TSearchRec;
begin
  Result := 0;
  if (AFolder = '') then
    Exit;

  if FindFirst(BuildFileName(AFolder, '*.*'), faDirectory, ASearchRec) = 0 then
  begin
    try
      repeat
        if ((ASearchRec.Attr and faDirectory) = faDirectory) and
           (ASearchRec.Name <> '..') and
           (ASearchRec.Name <> '.') then
        begin
          inc(result);
          result := result + CountFolders(BuildFileName(AFolder, ASearchRec.Name));
        end;
      until FindNext(ASearchRec) <> 0;
    finally
      SysUtils.FindClose(ASearchRec);
    end;
  end;
end;
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.
  Mit Zitat antworten Zitat