Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Variable mit mehreren Werten vergleichen ohne "OR&q

  Alt 28. Nov 2006, 10:02
Hi,
das hier sieht warscheinlich ein bischen blöd aus, funktioniert aber

Delphi-Quellcode:
Procedure Gegenstand(Bezeichnung:String);
begin
...
  // statt '#' kann natürlich auch alles andere genommen werden ;-)
  if pos('#'+Bezeichnung+'#', '#rohr#schraube#schraubendreher#')>0 then ....
...
  // oder auch: 1 6 15
  case pos('#'+Bezeichnung+'#', '#rohr#schraube#schraubendreher#') of
     1: machwas; // rohr
     6: machwas; // schraube
    15: machwas; // schraubendreher
  else
    machwas; // nix
  end;
...
end;
Das folgende ist etwas eleganter

Delphi-Quellcode:
function getArrayIndex(s: string; a: array of string): integer;
var
  i: Integer;
begin
  Result := -1;
  for i := low(a) to high(a) do
  begin
    if s = a[i] then
    begin
      Result := i;
      exit;
    end;
  end;
end;

procedure TestIt(Bezeichnung:String);;
begin
...
  if getArrayIndex(Bezeichnung, ['rohr', 'schraube', 'schraubendreher']) > -1 then
...
  case getArrayIndex(Bezeichnung, ['rohr', 'schraube', 'schraubendreher']) of
     0: machwas; // 1. String (rohr)
     1: machwas; // 2. String (schraube)
     2: machwas; // 3. String (schraubendreher)
    -1: machwas; // nicht gefunden
  end;
...
end;
mfg
MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat