AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Definieren von Byte-Bereichsüberschreitungen
Thema durchsuchen
Ansicht
Themen-Optionen

Definieren von Byte-Bereichsüberschreitungen

Ein Thema von devidespe · begonnen am 18. Jun 2008 · letzter Beitrag vom 18. Jun 2008
Antwort Antwort
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 12:03
Hallo,

ich habe eine Byte-Variable deklariert, welche nur Werte im Bereich zwischen 30 und 122 annehmen darf:

Delphi-Quellcode:
VAR ByteVariable : 30..122;
BEGIN
  ByteVariable:=120;
  Inc(ByteVariable, 10);
END;
Leider führt die Inkrementation dazu, dass aus den zugewiesenen 120 eine 130 gemacht wird, obwohl ich das mit der Variablendeklaration eigentlich ausschließen wollte. Wie kann ich eine Byte-Variable so deklarieren, dass die Erhöhung um 10 hier die 38 liefert ? Der Wert soll also am Anfang wieder hinaddiert werden.
Devid
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.852 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 12:06
Hast du die Bereichsprüfung aktiviert?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 12:15
Hi,

du benötigst -, mod und +

Achtung bei evtl. negativen Zwischenergebnissen!

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 12:51
Zitat von devidespe:
Hallo,

ich habe eine Byte-Variable deklariert, welche nur Werte im Bereich zwischen 30 und 122 annehmen darf:
...
Hallo,

bei einer solchen Variablen wirst du die Rechenoperationen +,-,inc selbst programmieren müssen und dabei Über- und Unterläufe berücksichtigen.

Gruss Reinhard
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 13:11
Zitat von mkinzler:
Hast du die Bereichsprüfung aktiviert?
Wenn ich die Bereichsüberprüfung aktiviere, stürzt mein Programm mit einer Exception ab.

Ich denke, dass ich da was selbst mit INC und DEC basteln muss...
Devid
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 13:56
Zitat von devidespe:
Wenn ich die Bereichsüberprüfung aktiviere, stürzt mein Programm mit einer Exception ab.
Ich vermute mal ganz stark, das ist die Bereichsprüfung? Wo liegt das Problem?

Wenn du keine richtiges Exceptionhandling hast und es die App killt, dann kannst du des doch nicht Delphi anlasten - er wollte nur nach deinen Wünschen entsprechend dich über diese Überschreitung informieren.
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 14:01
In Delphi ist es die "Bereichsüberprüfung", und die ist bei mir standardseitig deaktiviert.

Ich habe nun eine REPEAT-UNTIL Schleife zur Lösung des Problems hergenommen und es funktioniert.

Und fest steht: Delphi ist in keinem Fall Schuld an einer Exception, die darauf basierend verursacht wird. Das war vielleicht ein kleines Missverständnis.
Devid
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Definieren von Byte-Bereichsüberschreitungen

  Alt 18. Jun 2008, 14:12
Zitat von devidespe:
In Delphi ist es die "Bereichsüberprüfung", und die ist bei mir standardseitig deaktiviert.
Schon immer so gewesen, da es extra Code ist mit extra Anweisungen die z.T. deutlich Zeit kosten.

Zitat von devidespe:
Und fest steht: Delphi ist in keinem Fall Schuld an einer Exception, die darauf basierend verursacht wird. Das war vielleicht ein kleines Missverständnis.
Jo, ich kapiers immernoch nciht richtig, aber das habe ich dann falsch verstanden.
  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 07:28 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