Einzelnen Beitrag anzeigen

Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#5

Re: TEdit (1)... Type Conversion

  Alt 18. Mär 2005, 22:09
Hallo Alex!

Zitat von junale:
Hmm.. Aber wenn ich zum Besipiel nur einen ShortInt zurückgeben will, liefert mir "Val ('128', aShortInt, Code);" als Code 0 und als aShortInt -128 was durch den Überlauf geschieht. Wie kann ich dieses Fehlverhalten umgehen?
Dann lasse das Ganze doch in eine lokale Longint- oder besser Int64-Variable umwandeln.
Danach prüfst Du einfach, ob das größer als High(ShortInt) oder kleiner als Low(ShortInt) ist - wenn ja, war der Wert überschritten! Vorher noch die Länge prüfen, damit der DAU nicht 30mal auf die 9 gehämmert hat - das sprengt nämlich auch einen Int64.

Außerdem ist es ja oft so, daß man einen ShortInt nimmt, weil z.B. nur Werte von -30 bis +95 zugelassen sind - dann brauchst Du die technischen Grenzen ja gar nicht zu prüfen.

Übrigens, die dämliche TRY/EXCEPT-Variante liefert Dir unter den Umständen auch den falschen Wert!
In einem Edit ist das tatsächlich vernachlässigbar mit dem Preformance-Verlust - aber wenn man eine Datendatei mit mehreren 1000 Text-Integern einlesen muß, bremst das doch ganz schön.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
Die 6 Probleme des Programmierers: 1. dauert das länger, als man 2. glaubt, 3. geht das nicht so, wie man sich das 4. schlau überlegt hat, und 5. sitzt der Fehler da, wo man ihn 6. zuletzt sucht
  Mit Zitat antworten Zitat