// Achtung: dieser Code wurde einen wesentlichen/wichtigen Anteil reduziert
TSetRelation = (srEqual, srIsSubset, srIsSuperset, srOverlap, srDisjunct);
TDynamicCharSet =
Record
Private
_Map: TDCSDynMap;
_Encoding: TEncoding;
Public
Property DefaultEncoding: TEncoding;
Procedure Fill(CharSet: TSysCharSet; Encoding: TEncoding);
Procedure Fill(CharSet:
TDynamicCharSet);
Procedure Fill(CharSet: TDCSMap);
Procedure Fill(Char: AnsiChar; Encoding: TEncoding);
Procedure Fill(Char: WideChar);
Procedure Fill(First, Last: AnsiChar; Encoding: TEncoding);
Procedure Fill(First, Last: WideChar);
Procedure Fill(S: RawByteString; Encoding: TEncoding; AllowCharGroups: Boolean);
Procedure Fill(S: UTF8String; AllowCharGroups: Boolean);
Procedure Fill(S: UnicodeString; AllowCharGroups: Boolean);
Procedure FillAll;
Procedure Invert;
Procedure Clear;
Function IsEmpty: Boolean;
Function IsFull: Boolean;
Function LowChar: WideChar;
Function HighChar: WideChar;
Function CountChars: Integer;
Function GetAsSysCharSet(Encoding: TEncoding): TSysCharSet;
Function GetAsMap: TDCSMap;
Function GetAsAnsiString(Encoding: TEncoding): RawByteString;
Function GetAsUTF8String: UTF8String;
Function GetAsString: UnicodeString;
Function GetAllChars: UnicodeString;
Function ContainsAnyChar (S: RawByteString; Encoding: TEncoding): Boolean;
Function ContainsAnyChar (S: UTF8String): Boolean;
Function ContainsAnyChar (S: UnicodeString): Boolean;
Function ContainsAllChars (S: RawByteString; Encoding: TEncoding): Boolean;
Function ContainsAllChars (S: UTF8String): Boolean;
Function ContainsAllChars (S: UnicodeString): Boolean;
Function ContainsOnlyThisChars(S: RawByteString; Encoding: TEncoding): Boolean;
Function ContainsOnlyThisChars(S: UTF8String): Boolean;
Function ContainsOnlyThisChars(S: UnicodeString): Boolean;
Function Compare (CharSet: TSysCharSet; Encoding: TEncoding): TSetRelation;
Function Compare (CharSet:
TDynamicCharSet): TSetRelation;
Function Contains(Char: AnsiChar; Encoding: TEncoding): Boolean;
Function Contains(Char: WideChar): Boolean;
Function Compare (First, Last: AnsiChar; Encoding: TEncoding): TSetRelation;
Function Compare (First, Last: WideChar): TSetRelation;
Function Compare (S: RawByteString; Encoding: TEncoding): TSetRelation;
Function Compare (S: UTF8String): TSetRelation;
Function Compare (S: UnicodeString): TSetRelation;
Procedure Include (CharSet: TSysCharSet; Encoding: TEncoding);
Procedure Include (CharSet:
TDynamicCharSet);
Procedure Include (Char: AnsiChar; Encoding: TEncoding);
Procedure Include (Char: WideChar);
Procedure Include (First, Last: AnsiChar; Encoding: TEncoding);
Procedure Include (First, Last: WideChar);
Procedure Include (S: RawByteString; Encoding: TEncoding);
Procedure Include (S: UTF8String);
Procedure Include (S: UnicodeString);
Procedure Exclude (CharSet: TSysCharSet; Encoding: TEncoding);
...
Procedure Exclude (S: UnicodeString);
Procedure Intersect (CharSet: TSysCharSet; Encoding: TEncoding);
...
Procedure Intersect (S: UnicodeString);
Procedure ExclusiveOr(CharSet: TSysCharSet; Encoding: TEncoding);
...
Procedure ExclusiveOr(S: UnicodeString);
Function GetEnumerator: TDCSEnumerator;
Public
Class Operator Implicit(CharSet: TSysCharSet):
TDynamicCharSet;
Class Operator Implicit(CharSet: TDCSMap):
TDynamicCharSet;
Class Operator Implicit(S: RawByteString):
TDynamicCharSet;
Class Operator Implicit(S: UTF8String):
TDynamicCharSet;
Class Operator Implicit(S: UnicodeString):
TDynamicCharSet;
Class Operator Explicit(CharSet: TSysCharSet):
TDynamicCharSet;
Class Operator Explicit(CharSet: TDCSMap):
TDynamicCharSet;
Class Operator Explicit(S: RawByteString):
TDynamicCharSet;
Class Operator Explicit(S: UTF8String):
TDynamicCharSet;
Class Operator Explicit(S: WideString):
TDynamicCharSet;
Class Operator Explicit(S: UnicodeString):
TDynamicCharSet;
Class Operator Explicit(CharSet:
TDynamicCharSet): TSysCharSet;
Class Operator Explicit(CharSet:
TDynamicCharSet): TDCSMap;
Class Operator Explicit(CharSet:
TDynamicCharSet): RawByteString;
Class Operator Explicit(CharSet:
TDynamicCharSet): UTF8String;
Class Operator Explicit(CharSet:
TDynamicCharSet): WideString;
Class Operator Explicit(CharSet:
TDynamicCharSet): UnicodeString;
Class Operator Equal (Oper1, Oper2:
TDynamicCharSet): Boolean;
Class Operator NotEqual (Oper1, Oper2:
TDynamicCharSet): Boolean;
Class Operator LessThan (Oper1, Oper2:
TDynamicCharSet): Boolean;
Class Operator LessThanOrEqual (Oper1, Oper2:
TDynamicCharSet): Boolean;
Class Operator GreaterThan (Oper1, Oper2:
TDynamicCharSet): Boolean;
Class Operator GreaterThanOrEqual(Oper1, Oper2:
TDynamicCharSet): Boolean;
Class Operator Add (Oper1, Oper2:
TDynamicCharSet):
TDynamicCharSet;
Class Operator Subtract (Oper1, Oper2:
TDynamicCharSet):
TDynamicCharSet;
Class Operator Multiply (Oper1, Oper2:
TDynamicCharSet):
TDynamicCharSet;
Class Operator BitwiseAnd(Oper1, Oper2:
TDynamicCharSet):
TDynamicCharSet;
Class Operator BitwiseOr (Oper1, Oper2:
TDynamicCharSet):
TDynamicCharSet;
Class Operator BitwiseXor(Oper1, Oper2:
TDynamicCharSet):
TDynamicCharSet;
Class Operator LogicalNot(CharSet:
TDynamicCharSet):
TDynamicCharSet;
End;
Const Signs:
TDynamicCharSet = ();
// ['-', '+']
DecimalDigits:
TDynamicCharSet = ();
// ['0'..'9']
Numbers:
TDynamicCharSet = ();
// Signs + DecimalDigits
FloatChars:
TDynamicCharSet = ();
// Numbers + [DecimalSeparator]
SciFloatChars:
TDynamicCharSet = ();
// FloatChars + ['e', 'E']
OctalNumerals:
TDynamicCharSet = ();
// ['0'..'7']
HexNumerals:
TDynamicCharSet = ();
// ['0'..'9', 'A'..'F', 'a'..'f']
FirstIdentifierChars:
TDynamicCharSet = ();
// ['A'..'Z', 'a'..'z', '_']
IdentifierChars:
TDynamicCharSet = ();
// ['A'..'Z', 'a'..'z', '0'..'9', '_']
EditOperations:
TDynamicCharSet = ();
// [^C, ^V, ^X, Backspace]
AsciiControlChars:
TDynamicCharSet = ();
// [#0..#31, #127]
AsciiChars:
TDynamicCharSet = ();
// [#0..#127]
AsciiTextChars:
TDynamicCharSet = ();
// [Tab, LF, CR, Space..#127]
// The following constants are dependent on the existing unicode system of the OS.
ControlChars:
TDynamicCharSet = ();
// [#1..#$1F, #$7F..#$9F, #$70F and other]
BlankChars:
TDynamicCharSet = ();
// [#9, ' ', #160, #$3000, #$FEFF]
SpaceChars:
TDynamicCharSet = ();
// [#9..#$D, ' ', #$85 and other]
Digits:
TDynamicCharSet = ();
// '0123456789¹²³' and other digit chars
HexDigits:
TDynamicCharSet = ();
// HexNumerals + Bold:HexNumerals
Numeric:
TDynamicCharSet = ();
// copy of "Digits"
Letters:
TDynamicCharSet = ();
// LowerCaseLetters + UpperCaseLetters
LowerCaseLetters:
TDynamicCharSet = ();
// all lowercase characters
UpperCaseLetters:
TDynamicCharSet = ();
// all uppercase characters
Alpha:
TDynamicCharSet = ();
// any linguistic character
AlphaNum:
TDynamicCharSet = ();
// Alpha + Digits
NonAlphaNum:
TDynamicCharSet = ();
// AllChars - AlphaNum
Punctuation:
TDynamicCharSet = ();
// '!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~' and other
Printable:
TDynamicCharSet = ();
// graphic characters and blanks
AllChars:
TDynamicCharSet = ();
// Printable + ControlChars