Autor |
Beitrag |
Smartie
      
Beiträge: 205
|
Verfasst: Mi 04.05.05 09:23
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
      
Beiträge: 164
ME
D3Prof.-D6Standard
|
Verfasst: Mi 04.05.05 09:31
Speicher die Werte doch gleich als Integer und überprüf sie
dann. if Wert <> als then ...
|
|
sunspeed
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: 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.
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
sunspeed
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: 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.
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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 
      
Beiträge: 205
|
Verfasst: 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
      
Beiträge: 99
Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
|
Verfasst: Mi 04.05.05 09:45
Nun gut, dann solltest du die Werte als Integer in die INI Ablegen, wie oben beschrieben.
_________________ Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
|
|
Grendel
      
Beiträge: 443
Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
|
Verfasst: 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
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: 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.
|
|
|