AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FindNext Reihenfolge

Ein Thema von Patrick · begonnen am 24. Aug 2005 · letzter Beitrag vom 25. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#1

FindNext Reihenfolge

  Alt 24. Aug 2005, 10:45
Hallo,

Ich möchte zwei Ordner vergleichen. Dazu verwende ich FindNext (und was so dazugehört). Allerdings gibt FindNext den Inhalt der zwei Ordner in unterschiedlicher Reihenfolge aus, was dazu führt, dass mein optimierter Algorithmus nicht funktioniert.

Kann ich das ändern? Und nach welcher Gesetzmäßigkeit liest FindNext die Dateien?

Wenn ich ein und den selben Ordner mit einander vergleiche hat er die gleiche Reihenfolge, was auch logisch ist, da es ja der selbe Ordner ist. Jetzt nehme ich aber einen anderen Ordner, mit dem selben Inhalt: Hier hat der Inhalt aber eine andere Reihenfolge... Warum?
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: FindNext Reihenfolge

  Alt 24. Aug 2005, 10:54
Auch wenn man wohl annehmen kann, daß FindNext nach den Namen geht, so ist die keineswegs festgelegt. FindNext ist übrigens ein Wrapper für die API-Funktion MSDN-Library durchsuchenFindNextFile() womit dies hier eindeutig eine API-Frage ist.

Du kannst also die o.g. Annahme machen, solltest dir aber im Klaren sein, daß Windows auch irgendwann mal die Dateien nach Datum, Mondphase, Sternzeichen oder File-ID zurückgeben könnte.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: FindNext Reihenfolge

  Alt 24. Aug 2005, 10:57
Seit CP/M und DOS Zeiten werden die Einträge in der Reihenfolge zurück geliefert, wie sie in der Zuordnungstabelle gefunden werden - und das ist meist quer durcheinander. Norton SpeedDisk hatte damals z.B. die Einträge für die einzelnen Ordner alphabetisch sortiert in den Zuordnungstabellen, damit das Betriebssystem nicht mehr so lange sortieren musste beim anzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: FindNext Reihenfolge

  Alt 24. Aug 2005, 11:02
Zitat von Olli:
Auch wenn man wohl annehmen kann, daß FindNext nach den Namen geht, so ist die keineswegs festgelegt. FindNext ist übrigens ein Wrapper für die API-Funktion MSDN-Library durchsuchenFindNextFile() womit dies hier eindeutig eine API-Frage ist.

Du kannst also die o.g. Annahme machen, solltest dir aber im Klaren sein, daß Windows auch irgendwann mal die Dateien nach Datum, Mondphase, Sternzeichen oder File-ID zurückgeben könnte.
aus der MSDN:
Zitat:
The order in which this function returns the file names is dependent on the file system type. With the NTFS file system and CDFS file systems, the names are returned in alphabetical order. With FAT file systems, the names are returned in the order the files were written to the disk, which may or may not be in alphabetical order.
falls du also nicht NTFS hast, bekommst du die files in der reihenfolge, wie sie auf der platte erstellt wurden.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

Re: FindNext Reihenfolge

  Alt 24. Aug 2005, 11:17
Zitat von RavenIV:
falls du also nicht NTFS hast, bekommst du die files in der reihenfolge, wie sie auf der platte erstellt wurden.
Was sich aber vermutlich am (durchaus änderbaren) Dateidatum festmachen wird ...
  Mit Zitat antworten Zitat
24. Aug 2005, 11:53
Dieses Thema wurde von "Daniel" von "Object-Pascal / Delphi-Language" nach "Windows API / MS.NET Framework API" verschoben.
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: FindNext Reihenfolge

  Alt 24. Aug 2005, 12:15
was hindert einen daran das Ergebnis von FindFirst etc. in eine Stringlist zu packen, diese zu sortieren und dann zu vergleichen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: FindNext Reihenfolge

  Alt 24. Aug 2005, 16:45
Moin Patrick,

ich kenne jetzt Deinen Algorithmus nicht, und weiss natürlich auch nicht die Kriterien des Vergleiches, aber warum nimmst Du nicht das Ergebnis aus Verzeichnis 1 und versuchst diese Datei bzw. dieses Verzeichnis in Verzeichnis 2 zu finden, um es mal vereinfacht auszudrücken.
Entweder es ist da oder nicht.
In ersterem Falle kannst Du dann noch nach weiteren Kriterien vergleichen.
So bist Du völlig unabhängig von der Reihenfolge.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#9

Re: FindNext Reihenfolge

  Alt 25. Aug 2005, 09:40
Zitat:
The order in which this function returns the file names is dependent on the file system type. With the NTFS file system and CDFS file systems, the names are returned in alphabetical order. With FAT file systems, the names are returned in the order the files were written to the disk, which may or may not be in alphabetical order.
So machen meine Beobachtungen Sinn, aber das ist garichtmal schlimm. Dann funktioniert mein System halt nur auf NTFS...(also das Gelbe vom Ei ist das ja nicht...)


@SirThornberry
So habe ich es bei meinem alten Algorithmus gemacht, allerdings ist der langsam und bei weitem nicht so hübsch, wie der neue.

@Christian Seehase
Also mein Algorithmus gleicht zwei Ordner so ab, dass er mir nacher sagt, wo welche Datei zu viel ist bzw. welche wo neuer ist. Mit diesen Informationen kann ich z.B. ein Backup meiner Eigenen Dateien machen, ohne jedesmal alles auf eine Backup-Festplatte kopieren zu müssen. Somit kopiere ich nur noch Dateien, die vom Änderungs-Datum her neuer sind, oder Dateien, die neu dazu gekommen sind.
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: FindNext Reihenfolge

  Alt 25. Aug 2005, 09:50
Und wes Grundes denkst du, sei es ineffektiv es so zu machen wie andere oben vorschlugen (besonders gefällt mir Christians Idee dabei)? Weißt du eigentlich wieviel das OS macht, während es "nichts" macht? Glaube mir, da ist das Auflisten mehrerer Dateien einfach lächerlich dagegen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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