Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: findnext+dateiattribute+schreibgeschuetzte verzeichnisse

  Alt 4. Nov 2004, 06:39
Die Konstanten (so weit ich mich noch erinnere)
1 = Schreibgeschützt (Bit 0)
2 = Versteckt (Bit 1)
4 = System (Bit 2)
8 = Volume (Bit 3)
16 = Verzeichnis (Bit 4)
32 = Archiv (Bit 5)
und seit neuestem
64 = Systemlink

faAnyFile ist somit dann die Summe aus "1 + 2 + 4 + 8 + 16 + 32 = 63"
Das ganze wird in einem Byte gespeichert deswegen auch mit or zu ermitteln

Zum besseren Verständnis das ganze mal mit der Funktion "GetBit" wo einfach überprüft wird ob das 4te Bit gesetzt ist (bei 0 beginnend). Schneller als mit "GetBit" gehts natürlich mit "or" ist vielleicht nur nicht so verständlich das "or" für einige
Delphi-Quellcode:
function SetBit(const AByte: Cardinal; const ANewBitStatus: Boolean; const ABitIndex: TBitIndex): Cardinal;
begin
  if ANewBitStatus then
     result := AByte or (1 shl ABitIndex)
  else
     result := AByte and not(1 shl ABitIndex);
end;

function GetBit(const AByte: Cardinal; const ABitIndex: TBitIndex): Boolean;
begin
  result := AByte = SetBit(AByte, True, ABitIndex);
end;

[...]
  //prüfen obs nen Verzeichnis ist
  if GetBit(sr.attr, 4) then
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat