Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Abfrage ob in Wertebereich
Smartie - Mi 04.05.05 09:23
Titel: Abfrage ob in Wertebereich
Hallo,
ich möchte eine Sicherheitsabfrage machen, ob eine Zahl in einem bestimmten Wertebereich ist.
dieser Wertebereich wird in einem INI als String folgendermaßen dargestellt:
-99.999..99.999 oder 0..1 oder 13..57 etc. pp.
Kann ich meinem Compi irgendwie klar machen "wenn a nicht in [x], so tue dies und jenes"
(x ist in diesem Fall der String mit -99.999..99.999 oder 0..1 oder 13..57 etc. pp.)
Oder muß ich da ne komplett andere Lösung finden, doer hat irgendjemand eine Idee?
Danke und Lieben Gruß
Smartie
Blackheart - Mi 04.05.05 09:31
Speicher die Werte doch gleich als Integer und überprüf sie
dann. if Wert <> als then ...
sunspeed - Mi 04.05.05 09:34
Hallo,
warum INI? Leg den Wert doch als Integer in der Registry ab, auch nich optimal aber immerhin tust dir leichter.
Am einfachsten is wenn du prüfst:
Delphi-Quelltext
1: 2: 3: 4:
| if (a < -99999) or (a > 99999) then begin end; |
die Werte kannst natürlich auch durch Variablen (in deinem Fall die Werte aus der INI oder Registry) ersetzen.
Gruß Hoffe geholfen zu haben.
sunspeed - Mi 04.05.05 09:35
Hallo,
warum INI? Leg den Wert doch als Integer in der Registry ab, auch nich optimal aber immerhin tust dir leichter.
Am einfachsten is wenn du prüfst:
Delphi-Quelltext
1: 2: 3: 4:
| if (a < -99999) or (a > 99999) then begin end; |
die Werte kannst natürlich auch durch Variablen (in deinem Fall die Werte aus der INI oder Registry) ersetzen.
Gruß Hoffe geholfen zu haben.
jasocul - Mi 04.05.05 09:35
Das geht so nicht.
Du solltest einen anderen Ansatz wählen:
1. in der INI speicherst du pro Bereich zwei Werte (Maximum und Minimum). Und bitte nicht als String.
2. Kannst du dann eine ganze einfache If-Abfrage machen:
Delphi-Quelltext
1:
| if (Wert >= Bereich1Minimum) and (Wert <= Bereich1Maximum) then .... |
Smartie - Mi 04.05.05 09:42
jasocul hat folgendes geschrieben: |
Das geht so nicht.
Du solltest einen anderen Ansatz wählen:
1. in der INI speicherst du pro Bereich zwei Werte (Maximum und Minimum). Und bitte nicht als String.
2. Kannst du dann eine ganze einfache If-Abfrage machen:
Delphi-Quelltext 1:
| if (Wert >= Bereich1Minimum) and (Wert <= Bereich1Maximum) then .... | |
gut, danke. Hab ich so in der Art auch schon gedacht, muß ich halt meien INI umschmeißen, und dann alles einwenig abändern. Mal sehn ob ich damit heute noch fertig werde.
Danke Dir
sunspeed hat folgendes geschrieben: |
warum INI? Leg den Wert doch als Integer in der Registry ab, auch nich optimal aber immerhin tust dir leichter.
|
Also, Registry hatz hier nix verloren. der WErtebereich wird nämlich nicht von mir, sonderm vom User festegelegt. Der hat von mir nur ne Anleitung, nach welcehm Schema er seine INI zu schreiben hat. Aber was er reinschreibt (sind ja viel mehr sache ndrin), ist und bleibt seine Sache.
Also ,muß ich alle Anweisungen aus der INI rauslesen.
Lieben Gruß
Smartie
sunspeed - Mi 04.05.05 09:45
Nun gut, dann solltest du die Werte als Integer in die INI Ablegen, wie oben beschrieben.
Grendel - Mi 04.05.05 10:00
Ob etwas
in einem Wertebereich liegt kann man auch mit dem Schlüsselwort
in abfragen.
Delphi-Quelltext
1:
| if Wert in [Min..Max] then |
Bis neulich ...
jasocul - Mi 04.05.05 10:27
Das geht nicht, da die Wertemenge die Anzahl von 256 nicht überschreiten darf.
Aus der Delphi-Hilfe:
Zitat: |
Der Bereich eines Mengentyps ist die Potenzmenge eines bestimmten Ordinaltyps, der als Basistyp bezeichnet wird. Die möglichen Werte eines Mengentyps sind Teilmengen des Basistyps, einschließlich der leeren Menge. Der Basistyp darf aus maximal 256 Werten bestehen. Die Ordinalpositionen der Werte müssen zwischen 0 und 255 liegen. |
Sollten noch nicht-ordinale Werte (z.B. Real) dazu kommen, geht es erst recht nicht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!