ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
546
546
EMPFEHLEN
-
05.12.05 15:17 #1
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi!
Also ich beschäftige mich gerade mit NTFS Rechten und somit ACEs und Access Masken. Diese Masken sind im Grunde Bitfelder - d.h. ein einzelnes Bit steht für ein spezielles Recht (z.B. READ bzw. WRITE) je nachdem ob es gesetzt ist oder nicht.
Ich programmiere erst seit 10 Tagen in Visual Basic und bis jetzt habe ich nur gesehen das solche Bits als einzelne Konstanten; also folgendermaßen defniert wurden:Code :1 2
Const ACE_READ_DATA As Long = 1 Const ACE_WRITE_DATA As Long = 2
Usw. Es wurde höchstens noch von der Möglichkeit gebrauch gemacht, die Werte als hexadezimale Zahlen anzugegeben. Allerdings ist mir das so alles etwas zu umständlich und fehleranfällig. In C/C++ hätte ich die Werte einfach mit Hilfe das Bit-Shift Operators definiert und zwar als enum-Typ.
In Visual Basic wollte ich das Ganze also folgendermaßen schreiben:
Code :1 2 3 4 5 6 7 8 9
Enum ACE_Bits ACE_BIT_READ = 2 ^ 0 ACE_BIT_WRITE = 2 ^ 1 ... ACE_BIT_SYNC = 2 ^ 20 ACE_READ = ACE_BIT_READ Or ACE_BIT_EXECUTE Or ... ... End Enum
Jetzt meine Frage: Spricht da irgendwas gegen die Verwendung des Potenz Operators (und/oder eines Enums) anstelle der (hexadezimalen) Konstanten? Mir erscheint es nur irgendwie abwegig da die dezimalen/hexadezimalen Zahlen per Hand reinzuhacken wo man doch das so viel besser erkennen kann das da wirklich nur ein Bit gesetzt wird. Daher liegt die Vermutung nahe, das dies irgendwie keine gute Idee ist in VB.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
enum
Von JavaForever im Forum JavaAntworten: 20Letzter Beitrag: 07.04.10, 12:55 -
Bitmaske erstellen
Von Schnoogle im Forum Java GrundlagenAntworten: 0Letzter Beitrag: 05.03.10, 10:44 -
enum in C#
Von Conners im Forum .NET CaféAntworten: 5Letzter Beitrag: 15.06.08, 22:33 -
enum
Von lernen.2007 im Forum JavaAntworten: 1Letzter Beitrag: 20.11.05, 18:48 -
enum
Von rauch_c im Forum .NET ArchivAntworten: 5Letzter Beitrag: 11.05.04, 09:28





Zitieren
Login





