Hallo richard_boderich,
wenn ich Dich richtig verstehe, ist Deine Variable
x ein
Char und Deine Sets Mengen vom Typ
Byte. Wusstest Du, dass Du Sets auch vom Typ
Char anlegen kannst um Konstrukte der Art
Delphi-Quellcode:
var
myChar: Char;
myLetters: Set of Char;
myDigitsAndOperators: Set of Char;
begin
myChar := ObtainAChar;
myLetters := ['A'..'Z'];
myDigitsAndOperators := ['0'..'9', '+', '-', '/', '*'];
if myChar in myLetters then
DoSth(myChar)
else
if myChar in myDigitsAndOperators then
DoSthElse(myChar, ASecondParameter)
else
DoDefaultBehavior;
end;
zu realisieren?
Solche Sets können selbstverständlich auch zur Laufzeit berechnet werden (siehe auch
OH zu
Include,
Exclude), zB so
Delphi-Quellcode:
type
TCharSet = set of Char;
function AdditionalChars: TCharSet;
begin
Result := [ObtainAChar];
end;
//...
begin
myLetters := ['A'..'Z'] + AdditionalChars;
Wenn die Sets hingegen, wie in meinem ersten Beispiel, fest sind, könntest Du auch eine einfache
Case-Anweisung verwenden:
Delphi-Quellcode:
case myChar of
'A'..'Z': DoSth(myChar);
'0'..'9', '+', '-', '/', '*': DoSthElse(myChar, ASecondParameter);
else
DoDefaultBehavior;
end;