Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

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

Re: Durchsuchen eines Ordners nach Ordnern schlägt fehl

  Alt 20. Apr 2007, 19:44
Moin shmia,

Zitat von shmia:
Die fa-Konstanten dürfen nicht addiert sondern nur mit and, or oder xor verknüpft werden!
Delphi-Quellcode:
if FindFirst(APath + '*', faAnyFile + faDirectory, sr) = 0 then // Falsch !!!!
if FindFirst(APath + '*', faAnyFile or faDirectory, sr) = 0 then // Richtig !!!
Also das hätte ich jetzt anders kommentiert

Delphi-Quellcode:
if FindFirst(APath + '*', faAnyFile + faDirectory, sr) = 0 then // Ganz falsch !!!!
if FindFirst(APath + '*', faAnyFile or faDirectory, sr) = 0 then // Funktioniert, ist so aber unnötig !!!
Beim ersten "Ganz falsch", weil es keinen Sinn macht "Alles" (faAnyFile) noch mit einem, wie auch immer gearteten, weiteren Attribut zu verknüpfen. Dank der Addition kommt sogar etwas ungültiges für den Attributwert heraus.
Die Begründung für den zweiten Kommentar kann man auch schon aus dem ersten ablesen. Das Bit, dass durch die Veroderung mit faDirectory garantiert gesetzt werden würde ist in faAnyFile schon gesetzt.

Wozu würdest Du denn den Wert mit XOR verknüpfen?
Ich vermute mal stark, dass Du AND NOT meintest, um ein Bit garantiert zu löschen.
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