Einzelnen Beitrag anzeigen

nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#25

Re: routine aendern(speichern in listbox>speichern in has

  Alt 12. Jun 2009, 12:52
also wenn du dein progamm noch beschleunigen willst, dann würde ich deine
GetFilesInDirectory so abändern, dass sie nur 1x aufgerufen wird.
die gültigen dateiendungen kann man z.B. in ner hash-table speichern und
dann die dateiendung der aktuellen datei in der hash-table suchen.
so z.B.:

Delphi-Quellcode:
  //brauchste nur 1x machen z.B. beim erstellen des forms
  FDictImageExt := TStringDictionary.Create;
  FDictImageExt.CaseSensitive := true;
  FDictImageExt.Add('.jpg');
  FDictImageExt.Add('.jpeg');
  FDictImageExt.Add('.gif');
  FDictImageExt.Add('.png');
  FDictImageExt.Add('.bmp');
  FDictImageExt.Add('.pdf');
und dann änderst du deine Routine so ab
Delphi-Quellcode:
procedure TForm1.GetFilesInDirectory(const Directory: String);
var
  SR: TSearchRec;
  Filename, Key: String;
begin
  if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then
  repeat
    if (SR.Name = '.') or (SR.Name = '..') then
      Continue;

    Filename := Directory + SR.Name;
    if (SR.Attr and faDirectory) = faDirectory then
      GetFilesInDirectory(Filename + '\')
    else
      if FDictImageExt.Contains(ExtractFileExt(Filename)) then
      begin
        //Filename ist ein Bild, mache etwas damit
      end;
  until FindNext(SR) <> 0;
end;

//aufruf
GetFilesInDirectory(IncludeTrailingPathDelimiter(direct));
du könntest dann noch als parameter eine liste übergeben
und dadrin die gefundenen bilder speichern oder in
einem feld deiner klasse speichern oder sonst wo

der vorteil ist, du gehst die dateien wirklich nur 1x durch.
bei deiner methode gehst du pro dateiendung 1x durch die dateien
durch. also in deinem fall 5x.
das gleiche gilt i.ü. für deine html-files... wo du nach 3 endungen
suchst, also auch 3x alle dateien durchgehst. das könnte man genau
so in in einem rutsch erledigen!
  Mit Zitat antworten Zitat