![]() |
Suchmaske nach FindFirst verändern?
Hallo, weiß jemand wie man NACH FindFirst die Suchmaske verändern kann, sodass FindNext dann diese veränderte Suchmaske verwendet?
|
Re: Suchmaske nach FindFirst verändern?
Ganz einfach: Es ist nicht möglich.
Wie auch? Ich meine zuerst holst du mit FindFirst eine Liste von passenden Dateien, die du dann mit FindNext durchgehen kannst. Und dann willst du eine neue Suche mit einer neuen Liste starten, nur mit der alten Liste von Dateien. :pale: |
Re: Suchmaske nach FindFirst verändern?
Zitat:
|
Re: Suchmaske nach FindFirst verändern?
FindFirst initialisiert die Suche und stellt quasi intern eine Dateiliste zusammen
und es liefert auch gleich das erste Suchergebnis. FindNext liefert dann sozusagen die nächste Datei aus dieser Liste. |
Re: Suchmaske nach FindFirst verändern?
Ja, aber irgendwo muss dann diese "Liste von gefundenen passenden Dateien" sich doch befinden - in einem anderen Universum?
|
Re: Suchmaske nach FindFirst verändern?
Kann das sein, dass du eine Auswahl von Dateien suchen möchtest, und diese dann nochmal filtern möchtest? Warum prüfst du dann nicht nach jedem FindNext, ob die Datei deinem neuen Muster entspricht? Oder, was hindert dich daran, das Muster schon am Anfang zu nutzen?
|
Re: Suchmaske nach FindFirst verändern?
Nein, ich möchte u.a. herausfinden, wie FindFirst und Findnext WIRKLICH funktionieren.
Wenn FindFirst wirklich wie oben behauptet eine "Liste der passenden Dateien" erstellt, dann müsste: 1. FindFirst in einem Verzeichnis mit sehr vielen Dateien (z.B. 100.000) erheblich langsamer sein als in einem Verzeichnis mit z.B. nur 3 Dateien, was nach meiner Erfahrung nicht zutrifft, 2. diese Liste sich irgendwo in unserem Universum befinden. |
Re: Suchmaske nach FindFirst verändern?
Also:
FindFirst erstellt ein SearchHandle, und listet die erste Datei auf, die Windows findet, die zu den Parametern passt. FindNext nutzt dann diese Handle, und findet die nächste Datei, die eben genau zu diesem Handle passt. Und ja, je mehr Dateien vorhanden sind, umso länger dauert das. Ist das bei dir nicht der Fall, dann hat der Cache zugeschlagen. Interessant dazu auch die Remarks-Sektionen der MSDN-Einträge zu ![]() ![]() Das hat nix mit dem Universum zu tun. Sollte dir aber klar sein. //Edit: Wobei man hier "länger" vielleicht noch genauer definieren sollte. ;) |
Re: Suchmaske nach FindFirst verändern?
Zitat:
So wie ich die Sache jetzt sehe, beauftragt FindFirst Windows mit der Suche und erhält von Windows: 1. ein Such-Ergebnis zurück, das im SearchRecord gespeichert wird, und 2. ein Handle auf eben diese von Windows erstellte/durchgeführte Suche (das ebenfalls im SearchRecord gespeichert wird), das dann FindNext (über SearchRecord) übergeben werden kann. Ergebnis: Die Suche wird von Windows durchgeführt und die Parameter einer einmal durchgeführten/erstellten Suche können nicht mehr über die WinAPI beeinflusst werden. Könnte man das so stehen lassen? |
Re: Suchmaske nach FindFirst verändern?
Zitat:
es sei denn, man geht direkt auf die grundlegenden und undokumentierten WinAPI's los, denn da wird quasi jedesmal in FindNext die Suchmaske auf die nächsten Dateien angewendet, bis eine passende Datei gefunden wird und diese wird dann zurückgegeben. Aber diese interen APIs können sich auch mal ändern, und dann geht es z.B. mit der nächsten Windowsversion nicht mehr und da undokumentiert, gibt es fast keine, welche wissen, wie man diese AOIs aktuell nutzt. Was aber möglich ist: alles liefern lassen und dann selber filtern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz