AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ungeordnet, in Reihenfolge Dateien suchen und anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

ungeordnet, in Reihenfolge Dateien suchen und anzeigen

Ein Thema von Nogge · begonnen am 11. Jun 2005 · letzter Beitrag vom 11. Jun 2005
Antwort Antwort
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 08:57
Hallo Community,
Ich möchte gern z.B. mithilfe der Funktion FindAllFiles aus DP Dateien anzeigenlassen, die aber nicht geordnet werden sollen. Mir ist es wichtig, dass sie in der Reihenfolge wie im Explorer dargestellt werden. Ich habe keine Ahnung, wie ich das machen soll.
Plz Help Me^^
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 09:17
du willst dateien aus der dp anzeigen lassen? Hast du die dateien bereits heruntergeladen oder willst du direkt aus dem internet die anzeigen lassen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 09:23
Zitat von SirThornberry:
du willst dateien aus der dp anzeigen lassen?..
Hai SirThornberry,

ich denke er meint die Funktion FinAllFiles aus der Code-Library.

Werden die dort denn in irgendeiner Art sortiert?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 09:27
ups, da hab ich wohl durch das fehlende komma das ganze falsch interpretiert. ich dachte er will mit hilfe der funktion findallfiles alle dateien aus der dp anzeigen, wenn man das allerdings anders liest meint er wohl die funktion findallfiles aus der dp-codelib...

die Funktion sortiert die dateien nur indirekt. Die Sortierung übernimmt bereits das Betriebssystem. Unter win98/win95 würde diese funktion die dateien unsortiert zurück liefern, unter xp sind die dateien aus irgend einem grund schon sortiert (wohl durchs betriebssystem).

Anmerken möchte ich jedoch noch das die funktion nicht die perfomanteste ist da pro verzeichnis 2 mal findFirst->FindNext aufgerufen wird anstelle den aufruf nur einmal abzusetzen und dann selbst den Filter anzuwenden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#5

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 11:34
Ich bin offen für Neues^^ Haste denn ne bessere Funktion parat?
(Beim nächsten Mal setz' ich wieder Kommas, sry^^)
Ja, wie kann man denn nun eine unsortierte Fassung des Ganzes bekommen?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 11:40
eine unsortierte gibt es so nicht, einzige möglichkeit wäre dann das du das Ergebnis wieder mischst (shuffle). Was stört dich daran das die ergebnisse sortiert sind?

Bessere Lösung: Anstelle 2 mal findFirst->FindNext aufzurufen reicht einmal, und dann das Ergebnis mit "like" auf die Maske prüfen (da gibts ne unit in der Delphifundgrube)
http://www.delphi-fundgrube.de/files/like.txt

Bevor jetzt die Frage kommt warum man sich selbst die Arbeit des Filterns machen soll anstelle einfach per FindFirst den Filter zu setzen mit einer zweiten Abfrage: Festplattenzugriffe sind so ziemlich das langsamste was es bei den heitigen rechnern gibt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#7

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 11:47
Ich möchte keine weitere uses haben...Da ist doch dann nur wieder sehr viel Müll drin, wovon ich nur eine Sachen wirklich brauche...oder nicht?
Ich möchte die Ordner- und Dateistruktur von meinem Desktop nachm Formatieren beibehalten und amche deswegen vor einer Neuinstallation von Windows ein Backup mit meinem eigenen Tool.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 11:50
in dieser unit ist nix weiter drin als der algorythmus (funktion). In der Delphifundgrube wird es so bezeichnet:
Zitat:
Strings mit Wildcards (*,?) suchen
und nix weiter ist in der unit enthalten. Letztendlich ist es jedoch dir überlassen ob du eine datei mehr in die uses aufnimmst oder lieber 2 mal die dateien/ordner von der festplatte auflisten lässt.
Wenn unter XP eine Abfrage durchgeführt wurde (also ein directorylisting) wird dieses auch gecacht, jedoch weiß ich nicht ob das caching auch wirkt wenn man mit einer anderen maske erneut ein listing durchführt. Unter Win98 ist es auf jeden fall so das kein caching durchgeführt wird und somit dauert das auflisten auch mindestens doppelt so lang wenn man 2 mal den gleichen ordner abfragt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#9

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 11:57
Jo, habe mir den Link auch gerade angeschaut (war der schon immer da oder haste den noch bearbeitet?^^).
Wenn es allerdings keine wirkliche Möglichkeit gibt, Dateien in der strukturellen Reihenfolge anzeigenzulassen, dann schließe ich den Thread jetzt. Trotzdem danke für den Hinweis auf das Performance-lag, SirThornberry.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: ungeordnet, in Reihenfolge Dateien suchen und anzeigen

  Alt 11. Jun 2005, 12:21
den Link hab ich im Nachhinein erst eingefügt weil er nicht so leicht zu finden ist. Hab die Funktion mal versucht etwas zu optimieren (findallFiles).

Dabei hab ich eine InlineProcedure verwendet damit nicht bei jedem rekursiven Aufruf
"IncludeTrailingPathDelimiter" erneut aufgerufen wird.
Desweiteren hab ich einen weiteren Parameter hinzugefügt mit dem man auch angeben kann ob die
Verzeichnisnamen mit aufgelistet werden (macht ja manchmal sinn wenn man den Ordnerinhalt sehen will, wie im TotalCommander etc.)
In diesem Zusammenhang wird im Property Object auch mit gespeichert ob das Item ein Ordner ist oder nicht. Somit kann man später bei der Darstellung des Inhaltes Ordner und Dateien verschieden kennzeischnen.

Delphi-Quellcode:
procedure FindAllFiles(FileList: TStrings; RootFolder: string; Mask: string ='*'; Recurse: Boolean = True; AddFolderNames: Boolean = False);
  procedure LFindAllFiles(AParentFolder: String);
  var LSearchRec: TSearchRec;
  begin
    if FindFirst(AParentFolder + '*', faAnyFile, LSearchRec) = 0 then
    begin
      repeat
        if (LSearchRec.Name <> '.') and (LSearchRec.Name <> '..') then
        begin
          if LSearchRec.Attr and faDirectory = faDirectory then
          begin
            if AddFolderNames and Like(Mask, AnsiLowerCase(LSearchRec.Name)) then
              FileList.AddObject(AParentFolder + LSearchRec.Name, TObject(True));
            if Recurse then
              FindAllFiles(FileList, AParentFolder + LSearchRec.Name + '\');
          end
          else if Like(Mask, AnsiLowerCase(LSearchRec.Name)) then
            FileList.AddObject(AParentFolder + LSearchRec.Name, TObject(False));
        end;
      until FindNext(LSearchRec) <> 0;
      FindClose(LSearchRec);
    end;
  end;
begin
  Mask := AnsiLowerCase(Mask);
  LFindAllFiles(IncludeTrailingPathDelimiter(RootFolder));
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:06 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