Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#3

Re: If not XY in [...] mit reellen Typen

  Alt 23. Mai 2005, 22:58
Zitat von Hansa:
Das ist "Case". -> OH
Case funktioniert auch nur mit ordinalen Typen, also nicht mit beispielsweise strings oder floats (=reals)

Was du (mal ganz spezifisch den fall betrachtet) tun könntest wäre folgendes:
statt
Delphi-Quellcode:
Radius := StrToFloat(Form1.StringGrid1.Cells[4, i]);
if Radius <> 3.4 then
  if Radius <> 4.25 then
    if Radius <> 5.1 then
      if Radius <> 6 then
        if Radius <> 7 then
          if Radius <> 8.75 then
            if Radius <> 10.5 then
              if Radius <> 13.25 then
                if Radius <> 16 then
                begin
                  Form1.StringGrid1.Cells[9, i] := 'ERROR';
                end;
dasda
Delphi-Quellcode:
Radius: integer;
Radius := round(StrToFloat(Form1.StringGrid1.Cells[4, i]) * 100);
if not (Radius in [340, 425, 510, 600, 700, 875, 1050, 1325, 1600]) then
  Form1.StringGrid1.Cells[9, i] := 'ERROR';
schreiben

Oder du schreibst dir eine Funktion:
Delphi-Quellcode:
function IsWertIn(Wert: extended; Werte: array of extended): boolean;
begin
  result := true;
  for i := 0 to high(Werte) do
    if Wert = Werte[i] then //vorsicht hier: extendeds vergleichen sollte man nicht, sondern mit einer abweichung von +/- 0.josef vergleichen
      exit;
  result := false;
end;
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat