Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Variablenwert Bestandteil einer Menge ? wie Zeitkritisch

  Alt 23. Jul 2004, 12:40
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;
gruß, choose
  Mit Zitat antworten Zitat