![]() |
Delphi-Version: 5
Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
Hi,
mir fällt gerade kein guter Titel ein... ich muss gerade einige Fehler-Codes Integer-Werte (negativ, bis ca. 9999) auswerten. Simple:
Delphi-Quellcode:
geht das auch einfacher (für 2 Werte ist das Ok, aber sobald das etwas mehr Stati sind...)?
var
lFehlerCode: Ingeger; begin lFehlerCode := -99; if ((lFehlerCode = -99) or (lFehlerCode = -98)) then begin ShowMessage('Doof'); end; end;
Delphi-Quellcode:
Funktioniert nicht, auch nicht mit eckigen Klammern.
if (lFehlerCode in (-99, -98)) then
Das wäre aber genau das, was ich möchte. Ein Set kann nur 256 Elemente. Und eine TList ist mit dem Objekt-Umbau schon overkill.
Delphi-Quellcode:
-> case funktioniert, geht es noch einfacher?
case lFehlerCode of
-99, -98: ShowMessage('Doof'); else raise Exception.Create('ganz doof'); end |
AW: Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
Hallo,
Vielleicht sowas:
Delphi-Quellcode:
function ValueIn(Val: Integer; Arr: Array of Integer): Boolean;
var i: Integer; begin Result := false; for i:= 0 to High(Arr) do if Arr[i] = Val then exit(true); end; // Aufruf: if ValueIn(lFehlerCode,[-99,-98]) then ShowMessage('Doof'); |
AW: Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
![]() |
AW: Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
hi,
InRange geht nicht, da es keine "Range" ist. Die Funktion "ValueIn" sieht gut aus, werd ich so mache. Dachte nur, das Delphi dafür schon ein Sprach-Konstrukt hat. MfG raller09 |
AW: Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
Zitat:
Delphi-Quellcode:
entspricht
(-99 = x) and (X = -98)
Delphi-Quellcode:
und für diesen Fall arbeitet InRange optimaler, als ValueIn, da dort nicht erst ein Array erstellt und durchlaufen werden muß.
(-99 >= x) and (X <= -98)
|
AW: Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
Ich habe den Einwand so verstanden, dass es sich nicht unbedingt um einen zusammenhängenden Bereich handeln muss, sondern auch etwas wie [4,11,123] vorkommen kann. In dem Fall kommt man mit InRange tatsächlich nicht weiter.
|
AW: Ist Variable in (Integer-Wert, Integer-Wert) - wie umsetzen?
Gibt es einen Grund, warum du überhaupt Fehlercodes einsetzt? Oder bist du dazu gezwungen bzw. sind die gar nicht von dir?
mfg Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz