AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit VAL Funktion

Ein Thema von AJ_Oldendorf · begonnen am 12. Apr 2011 · letzter Beitrag vom 12. Apr 2011
Antwort Antwort
AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#1

Probleme mit VAL Funktion

  Alt 12. Apr 2011, 13:21
Hallo zusammen,
habt ihr das Problem schonmal folgendes Problem gehabt:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  tmpDouble : Double;
  z : Integer;
begin
  Val('', tmpDouble, z);
  if z = 0 then
    ShowMessage('Mist');
end;
Bei einem Kollegen ist z=0 und bei mir ist z=1.
Habt ihr eine Idee, woran das liegen kann.
Beides Win7 32bit.
Viele Grüße
Alex
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 13:45
Hallo,

Ich schätze mal einfach, dass die Funktion Val bei Misserfolg gar nichts in z reinschreibt.
Und in lokalen Variablen kann potentiell ALLES stehen wenn sie nicht initialisiert sind.

Steht denn bei euch beiden das Gleiche drin wenn du den Code so änderst?

Delphi-Quellcode:
var
  tmpDouble : Double;
  z : Integer;
begin
  z := 0;
  Val('', tmpDouble, z);
  if z = 0 then
    ShowMessage('Mist');
PS: Es gibt auch StrToIntDef!

Delphi-Quellcode:
var
  z : Integer;
begin
  z := StrToIntDef('',0);
  if z = 0 then
    ShowMessage('Mist');
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
 
Delphi 12 Athens
 
#3

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 13:51
Wobei hier wohl TryStrToInt die bessere Option wäre, aber das prüft intern auch mit Val.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 13:54
Z gibt die Fehlerstelle an (so wie es in der OH auch erklärt ist)

kein Fehler = 0
Fehler > 0


Zitat:
Bei einem Kollegen ist z=0 und bei mir ist z=1.
Dein Kollege gibt vermutlich eine gültige Zahl (den String) an.
Und du nicht. 1 = Fehler an erster Stelle, was bei dir das Stringende ist, da du "nichts" übergeben hast.

Zitat:
Delphi-Quellcode:
if z = 0 then
  ShowMessage('Mist');
PS: z=0 istr kein Mist ... es ist gut, da 0 = kein Fehler
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Apr 2011 um 13:57 Uhr)
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#5

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 14:06
Problem gefunden!
Ein nicht installiertes SP3 (UpdatePack3) von RAD2009 führt zu dem Fehler.
Mit dem UpdatePack3 ist der Fehler behoben im VAL.

Ist also wirklich ein Bug gewesen...

Viele Grüße
Alex
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#6

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 14:24
Bei dir ist Z jetzt 0? (in dem Beispiel aus Post #1)

Dann hast du jetzt einen Bug eingebaut, denn die 1 war schon richtig.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 15:04
Bei dir ist Z jetzt 0? (in dem Beispiel aus Post #1)

Dann hast du jetzt einen Bug eingebaut, denn die 1 war schon richtig.
Das kommt wohl darauf an, ob man einen leeren String als gültige Zahl erachtet.

Da aber ja heutzutage kein vernünftiger Programmierer auf die Idee käme, Val() in einem neuen Code zu benutzen () dürfte die Abwärtskompatibilität das richtige Verhalten definieren. Und diese wurde wohl mit dem Update wiederhergestellt

=> http://www.bobswart.nl/weblog/Blog.aspx?RootId=5:3219
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#8

AW: Probleme mit VAL Funktion

  Alt 12. Apr 2011, 15:59
Bei mir sagen D7 und XE was von 1.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 10:20 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