AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen-Abfrage in Integerbereich

Ein Thema von ThorZten · begonnen am 16. Feb 2005 · letzter Beitrag vom 16. Feb 2005
Antwort Antwort
ThorZten
(Gast)

n/a Beiträge
 
#1

Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 22:58
Guten Abend!
Habe folgendes Problem:
Ich möchte eine Integer-Abfrage machen die wie folgt aussieht:

Delphi-Quellcode:
var zahl:Integer;

...
//zahl wird mehrfach modifiziert
if zahl in [0..50] then ...
if zahl in [350..400] then ...
Die erste Abfrage bereitet keine Probleme, bei der zweiten meckert aber Delphi mit "Constant expression violates subrange bounds", also sprenge ich die Grenzen mit dieser Abfrage.

Meine Frage: wie umschiffe ich dieses Problem?
Muss ich wirklich jede Zahl so umständlich abfragen:
if (zahl=350)or(zahl=351)or(zahl=352)or... oder gibt es da eine schönere Lösung?

Danke schon einmal
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 22:59
Wie wärs mit:

if (zahl>=350) and (Zahl<=400) then
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
ThorZten
(Gast)

n/a Beiträge
 
#3

Re: Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 23:08
Okay, die Antwort war jetzt fies!
So einfach kann es manchmal sein... Danke

Gibt es noch eine andere Lösung, die mein Gesuch mit einer komplizierter aussehenden Lösung belohnt?
Kann man evt. einen Zahlenbereich definieren, den man mit der Variable abgleichen kann oder so?

Ansonsten reicht das schon auch.
Danke
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 23:10
Statt
Delphi-Quellcode:
var zahl:Integer;

...
//zahl wird mehrfach modifiziert
if zahl in [0..50] then ...
if zahl in [350..400] then ...
kann man das mit case lösen:
Delphi-Quellcode:
var zahl:Integer;
...
case zahl of
 0..50: ...
 350..450: ...
 //usw.
end;
MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
ThorZten
(Gast)

n/a Beiträge
 
#5

Re: Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 23:18
Das habe ich auch schon überlegt, aber da stoße ich mit folgender Überlegung an die Grenzen, nämlich, wenn ich zwei Variablen abfragen möchte: (Koordinaten zB)

Delphi-Quellcode:
var X,Y: integer;

if (X in [0..10]) and (Y[0..10]) then ...
Da müsste dann wohl eine doppelt-verschachtelte Abfrage her. So was wie:
Delphi-Quellcode:
case X of
 0..10: if Y in[0..10] then ...
end;
Mit höheren Werten müsste ich dann wie oben vorgeschlagen wie folgt abfragen:
 if (X>=0)and(X<=400)and(Y>=0)an(Y<=400) then ...
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#6

Re: Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 23:28
Zitat von ThorZten:
Da müsste dann wohl eine doppelt-verschachtelte Abfrage her.
Delphi-Quellcode:
  case X of
    0..10:
      case Y of
        0..10: ShowMessage('X und Y haben den richtigen Wert');
      end;
  end;
Wie du siehst, gibt es verschiedene Möglichkeiten den Wertebereich zu überprüfen. Entscheide dich für den, den du am besten Lesen kannst.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
ThorZten
(Gast)

n/a Beiträge
 
#7

Re: Variablen-Abfrage in Integerbereich

  Alt 16. Feb 2005, 23:47
Alles klar, Dank an alle.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz