AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit FindFirst

Ein Thema von toyoman · begonnen am 15. Okt 2007 · letzter Beitrag vom 15. Okt 2007
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Problem mit FindFirst

  Alt 15. Okt 2007, 10:43
Naja, mal der Reihe nach:

1. Was soll faDirectory+fahidden+fasysfile+faanyfile+faarchive+fareadonly ? Die Flags sind einzelne Bitkonstanten (einzige Ausnahme: faAnyFile, siehe folgendes) und definieren jeweils nur ein Bit und können von daher zufälligerweise addiert werden. Dieser Weg ist aber falsch - sie müssen mit ODER verknüpft werden. Auch steht die Konstante faAnyFile nicht für ein Bit sondern für mehrere gesetzte Bits und verramscht dir bei der Addition die kompletten anderen Bits. Und dazu noch, wo doch faAnyFile für alle anderen Bits steht.
Ergo: gebe nur faAnyFile an!

2. Was willst du mit der If Abfrage
Delphi-Quellcode:
if ((SearchRec.Attr = faDirectory and 255) or (SearchRec.Attr = 48)
                  or (SearchRec.Attr = 18) or (searchrec.attr=17) or (searchrec.attr=20))
                  and (pchar(SearchRec.Name) <> '.') and (pchar(SearchRec.Name) <> '..') then
erreichen? Vermutlich ob es ein Ordner ist und wenn ja, ob er ungleich . oder .. ist. Ok. Attr von TSearchRec ist auch eine Bitfeld wo jedes Bit seine Bedeutung hat, somit musst du eine logische Operation durchführen um zu testen ob ein Bit (das für Verzeichnis: faDirectory) gesetzt ist. Ergo: if ( ( SearchRec.Attr and faDirectory ) = faDirectory ) then 3. Ich habe die Abfrage ob der Name ungleich . und .. ist extra rausgenommen, weil wenn es in deiner alten Abfrage dazu kam, dass es ein Verzeichnis ist und es den Namen . oder .. hatte, dann wurde dein ELSE Zweig aufgerufen und kopiert - war das so gewollt? Ich denke wohl eher nicht. Von daher füge die Namen Abfrage direkt vor dem rekursiven FindFiles() Aufruf an: if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then Ich denke mal, dass sich das Problem mit den 3 Änderungen auch erledigt hat. Schon allein, da du das faReadOnly Flag gar nicht mehr brauchst.
  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 00:21 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