Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8
  Alt 27. Jun 2003, 13:11
(f.Attr and faDirectory)>0

ist ebenfalls "falsch", bzw. unsicher.
Du kombinierst einen Boolschen Operator -> and, mit einem Integer Vergleich > 0. Bei Boolschen Abfragen immer auf eine Boolsche Wahrheit testen. Also so

(F.Attr and faDirectory <> 0) oder
(F.Attr and faDirectory = 0).

Warum ? Ganz einfach (-1 and $80000000) > 0 ergibt False OBWOHL das 31.te Bit in -1 gesetzt ist. Da aber dieses Bit das Vorzeichen Bit ist muß > 0 fehlschlagen das da -1 and $8000000 = -MaxInt ist.

Dagegen ergibt (-1 and $80000000 <> 0) = TRUE.

Gruß Hagen
  Mit Zitat antworten Zitat