Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Set of WideChar (TDynamicCharSet)

  Alt 12. Feb 2010, 09:15
Neben den Operatoren SHL und SHR und den zugehörigen Funktionen .ShiftDown und .ShiftUp,
haben es jetzt auch noch .Lower, .Upper und .CaseLess, sowie .toLower, .toUpper und .toCaseLess reingeschafft.

Delphi-Quellcode:
Var X: TDynamicCharSet;

X := ['a'..'w'];
X := X shr 3;
// X = ['d'..'z']

X := ['a'..'w', 'ä'];
X := X shl 29;
// X = ['D'..'Z', 'Ç']

X := ['a'..'w', 'ä'];
X.Upper;
// X = ['A'..'W', 'Ä']

X := ['a'..'w', 'Ä'];
X.CaseLess;
// X = ['A'..'W', 'a'..'w', 'Ä', 'ä']

X := ['a'..'w'];
If X.toUpper.Contains('A') Then JaIchBinDrin;
If X.toUpper >= ['B'] Then JaIchBinAuchDrin;
// zu ">=": ['B'] ist ja ein SubSet von ['A'..'W']

X := ['a'..'w'];
// -X = alle (Unicode)Zeichen, ohne ['a'..'w']
Jetzt dürfte wohl alles drin sein, welches man mit Chars/CharSets machen kann.

Delphi-Quellcode:
X := ['0'..'9', 'a'..'f', 'A'..'F'];
X := (X * ['0'..'9']) shl 48 + (X * ['A'..'F']) shl 55 + (X * ['a'..'f']) shl 87;
// oder
X := (X and ['0'..'9']) shl 48 or (X and ['A'..'F']) shl 55 or (X and ['a'..'f']) shl 87;
// X = [#0..#15]
//
// #0 = '0' #1 = '1' #9 = '9' #10 = 'A' or 'a' #15 = 'F' or 'f'
Sowas braucht zwar keiner, aber man kann es dennoch machen.
$2B or not $2B
  Mit Zitat antworten Zitat