Autor Beitrag
Smartie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

ME
D3Prof.-D6Standard
BeitragVerfasst: Mi 04.05.05 09:31 
Speicher die Werte doch gleich als Integer und überprüf sie
dann. if Wert <> als then ...
sunspeed
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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#
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if (a < -99999or (a > 99999then //Prüfen ob Werte ausserhalb bereich, wenn ja tu was
begin
 //... do something
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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#
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if (a < -99999or (a > 99999then //Prüfen ob Werte ausserhalb bereich, wenn ja tu was
begin
 //... do something
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
if (Wert >= Bereich1Minimum) and (Wert <= Bereich1Maximum) then ....					
Smartie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: Mi 04.05.05 09:42 
user profile iconjasocul 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:
ausblenden 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


user profile iconsunspeed 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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#
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mi 04.05.05 10:00 
Ob etwas in einem Wertebereich liegt kann man auch mit dem Schlüsselwort in abfragen.

ausblenden Delphi-Quelltext
1:
if Wert in [Min..Max] then					


Bis neulich ...
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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.