Autor Beitrag
Andidreas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114

Windows XP Pro
BDS 2006
BeitragVerfasst: So 05.08.07 10:14 
Hallo
Wie kann ich prüfen, ob eine Zahl innerhalb von 10115-14199 enthalten ist?

Dank im voraus
Andidreas


Moderiert von user profile iconGausi: Topic aus VCL (Visual Component Library) verschoben am So 05.08.2007 um 10:42

_________________
Trotz Gejammer und Gezeter liegt die Katze jetzt im Bräter.
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: So 05.08.07 10:19 
Moin ...
kann das zwar jetzt net prüfen, aber sollte nicht folgendes funktionieren
ausblenden Delphi-Quelltext
1:
if x in [10115..14199then					

LG Mario
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 05.08.07 10:40 
Das wird afaik nicht funktionieren, weil Sets nicht so groß sein können. Aber so gehts auf jeden Fall:

ausblenden Delphi-Quelltext
1:
 if (aZahl >= 10115AND (aZahl <= 14199then Showmessage('Sie haben gewonnen!');					

_________________
We are, we were and will not be.
Andidreas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114

Windows XP Pro
BDS 2006
BeitragVerfasst: So 05.08.07 10:48 
Danke Gausi. Funktioniert bestens.

_________________
Trotz Gejammer und Gezeter liegt die Katze jetzt im Bräter.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 05.08.07 11:05 
@Gausi: Wird auch nicht funktionieren, da die Grenzen von Sets auf 256 Elemente begrenz sind und Bit-Indizes als Byte behandelt werden. D.h. es wird immer nur das LSB einer Zahl betrachtet, womit die Abfrage

ausblenden Delphi-Quelltext
1:
If X in [256..511Then Halt;					


immer False ergeben würde, während

ausblenden Delphi-Quelltext
1:
If X in [0..255Then Halt;					


immer True liefert ;-)

Wenn man weiß, das X nie größer als 255 wird ist diese Abfrage zwar legitim, aber dennoch immer langsamer als Gausi's Version.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 05.08.07 11:14 
Also das:
ausblenden Delphi-Quelltext
1:
If X in [256..511Then Halt;					

geht bei mir eh nicht durch den Compiler:
Zitat:
[Fehler] Unit1.pas(29): Konstantenausdruck verletzt untere Grenzen
Ob das nach Delphi7 geändert wurde, weiß ich nicht.

_________________
We are, we were and will not be.
Andidreas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114

Windows XP Pro
BDS 2006
BeitragVerfasst: So 05.08.07 11:16 
Bekomme genau die gleiche Fehlermeldung.

_________________
Trotz Gejammer und Gezeter liegt die Katze jetzt im Bräter.
Biergeneral
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

WIN XP
Delphi 7 Ent., Delphi 2007 Ent., C/C++ (Eclipse)
BeitragVerfasst: Fr 10.08.07 13:00 
Sonst gibts in der Math unit auch noch
InRange(Value, Min, Max) : Boolean
Aber da wird vermutlich auch nichts anderes als (Value > Min) and (Value < Max) drinstehen ;)


Zuletzt bearbeitet von Biergeneral am Fr 10.08.07 23:23, insgesamt 1-mal bearbeitet
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 10.08.07 13:02 
Zitat:
(Value > Max)
eher (Value < Max) oder besser (Value >= Min) and (Value <= Max)

_________________
Markus Kinzler.
Biergeneral
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

WIN XP
Delphi 7 Ent., Delphi 2007 Ent., C/C++ (Eclipse)
BeitragVerfasst: Fr 10.08.07 23:24 
Stand da doch :D *hust*