AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi routine aendern(speichern in listbox>speichern in hashtable)
Thema durchsuchen
Ansicht
Themen-Optionen

routine aendern(speichern in listbox>speichern in hashtable)

Ein Thema von nimmersattXD · begonnen am 10. Jun 2009 · letzter Beitrag vom 16. Jun 2009
 
Benutzerbild von nimmersattXD
nimmersattXD

Registriert seit: 1. Jun 2009
Ort: Sangerhausen
65 Beiträge
 
Delphi 7 Personal
 
#1

routine aendern(speichern in listbox>speichern in hashtab

  Alt 10. Jun 2009, 14:29
Hallo zusammen!

ich habe mal wieder ein problem

ich habe im EasyDelphiHelper eine schoene routine gefunden, die rekursiv nach dateien in ordnern sucht:

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 and faDirectory) = 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;
die ergebnisse speicher ich in listboxes:

Delphi-Quellcode:

procedure TForm1.BtnSearchPicClick(Sender: TObject);
var direct:string;
begin
direct:=EdpathP.Text;

GetFilesInDirectory2(direct,'*.jpg',LiBoPathOfPics.Items,true,true);
GetFilesInDirectory2(direct,'*.png',LiBoPathOfPics.Items,true,false);
GetFilesInDirectory2(direct,'*.pdf',LiBoPathOfPics.Items,true,false);
GetFilesInDirectory2(direct,'*.bmp',LiBoPathOfPics.Items,true,false);
GetFilesInDirectory2(direct,'*.gif*',LiBoPathOfPics.Items,true,false);

GetFilesInDirectory1(direct,'*.jpg',LiBoPic.Items,true,true);
GetFilesInDirectory1(direct,'*.png',LiBoPic.Items,true,false);
GetFilesInDirectory1(direct,'*.pdf',LiBoPic.Items,true,false);
GetFilesInDirectory1(direct,'*.bmp',LiBoPic.Items,true,false);
GetFilesInDirectory1(direct,'*.gif*',LiBoPic.Items,true,false);

LbPic.Caption:=(IntToStr(LiBoPic.Count));

end;
ihr seht ich suche nach bildern!

so nun hab ich aber von meinem chef erfahren das mein programm mit hashtabellen viel schneller sein wuerde. nach ein bisschen suchen habe ich auch eine schoene unit csDictionary.pas von alzaimar gefunden.

Ich hab zuerst versucht mit einer zaehlschleife einfach alle items der listbox in die hashtabelle zu laden, aber es sind inkompatible typs pointer und string. Ich weiss das es am schnellsten waer wenn ich es anstatt in die listbox lade gleich in eine hashtabelle, leider weiss ich nicht so recht wie ich die routine umstellen soll!

kann mir da vielleicht jemand helfen?
Sorry an alle fuer die es schwerfaellt meine texte zu lesen! ich bin im moment in england und hab nur eine englische tastatur, also leider keine umlaute usw.!

http://nimmersatt-xd.mybrute.com
  Mit Zitat antworten Zitat
 


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