Ups, da hatte ich doch glatt vergessen die letzte Version hochzuladen,
in welcher dieser saublöde Compilerfehler (defekte Referenzzählung
http://www.delphipraxis.net/internal...t.php?t=176345 )
behoben/umgangen wurde.
Und nun noch ein kleiner "Gag":
Das kleinste (vom Code her) und schnellste WideCharSet der Welt.
Delphi-Quellcode:
Type TWideCharRec = Record
Lo: AnsiChar;
Hi: Byte;
End;
TTinyWideCharSet = Record
Sets: Array[Byte] of TSysCharSet;
Procedure Include(C: WideChar); Inline;
Procedure Exclude(C: WideChar); Inline;
Function Test (C: WideChar): Boolean; Inline;
Procedure Clear; Inline;
End;
Procedure TTinyWideCharSet.Include(C: WideChar);
Begin
System.Include(Sets[TWideCharRec(C).Hi], TWideCharRec(C).Lo);
End;
Procedure TTinyWideCharSet.Exclude(C: WideChar);
Begin
System.Exclude(Sets[TWideCharRec(C).Hi], TWideCharRec(C).Lo);
End;
Function TTinyWideCharSet.Test(C: WideChar): Boolean;
Begin
Result := TWideCharRec(C).Lo in Sets[TWideCharRec(C).Hi];
End;
Procedure TTinyWideCharSet.Clear;
Var i: Byte;
Begin
For i := 0 to 255 do Sets[i] := [];
End;
Es kann nicht viel, kennt kein
Ansi, aber es ist dafür klein und komplett fehlerunanfällig.