Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#5

Re: Problem im Umgang mit Sets

  Alt 15. Feb 2010, 05:43
Zitat von Amateurprofi:
Delphi-Quellcode:
function SingleValueInSet(v:zahlen):integer;
begin
   result:=0;
   if (Word(v)>0) and (Word(v) and (Word(v)-1) = 0) then // dann ist nur ein Wert im Set
      while not odd(word(v)) do begin
         inc(result);
         Word(v):=Word(v) shr 1;
      end;
end;
Bei dieser Art der Typkonvertierung muß man nur aufpassen.
Also der neue Typ muß genaudo groß sein, wie das Set, sonst meckert der Compiler.

Set = 1 Byte > Byte
Set = 2 Byte > Word
Set = 4 Byte > LongWord
...

Hier stimmt das Word aber > 10 Werte / 8 Bit = 1,25 = 2 Byte

Und das Verfahren ist dort etwas erklärt
http://www.delphipraxis.net/internal...ight=countbits
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat