Deutsch
Bugs und vermeintliche

Unerwartete Typumwandlung bei Val()

 
- Seite 1 -



Uwe
''Pascal''
Niemeier
Hi Leute, hallo Roland!

Mir ist wieder mal was aufgefallen:
Anscheinend werden Strings, die mit X beginnen, duch val()  automatisch als Hex-Wert interpretiert; allerdings nur, wenn das Ergebnis einer Variablen zugeordnet wird:
var a$="XAA"
print val(a$)
var a&=val(a$)
print a&
waitkey

So praktisch das sein mag, so irritierend ist es, wenn man nicht damit rechnet
Kann mich jedenfalls nicht erinnern, daß das irgendwo mal erwähnt wurde und in der Hilfe steht auch nichts darüber...
BTW: Dieses Verhalten wurde anscheinend irgendwann zwischen Version 7.9 und 10 eingeführt.

SeeYou
Pascal
 
09.02.2011  
 



 
- Seite 1 -



Jörg
Sellmeyer
Kann es sein, daß Du das im letzten Bugfix übersehen hast?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.02.2011  
 



Schau mal bei Version:





Aber auch:


4 kB
Hochgeladen:11.02.2011
Ladeanzahl276
Herunterladen
4 kB
Hochgeladen:11.02.2011
Ladeanzahl280
Herunterladen
2 kB
Hochgeladen:11.02.2011
Ladeanzahl262
Herunterladen
 
11.02.2011  
 




Jörg
Sellmeyer
Komisch - ich bekomm gar keine ß-Titelzeile. Auch ProfVer gibt nur 12.0 aus. Ist alles frisch in den Profanordner kopiert. Hast Du die aktuellste Version (vor 30 Minuten gekommen)?

Seh gerade - Du hast. Trotzdem - meine ist's auch.. Trotzdem geht es nicht...




29 kB
Hochgeladen:11.02.2011
Ladeanzahl256
Herunterladen
8 kB
Hochgeladen:11.02.2011
Ladeanzahl244
Herunterladen
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.02.2011  
 



Schau mal, obige meine Bilder sind XProfan-Runtime.

Hier Interpreter:


4 kB
Hochgeladen:11.02.2011
Ladeanzahl247
Herunterladen
 
11.02.2011  
 




Jörg
Sellmeyer
Mit der Runtime läuft's bei mir gar nicht


12 kB
Hochgeladen:11.02.2011
Ladeanzahl254
Herunterladen
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.02.2011  
 



Bei "mit-Backslash" stürzt es bei mir (genauso) ab - bei "mit-ohne-Backslash" ( ^^ ) wie oben auf dem Bild.



Unsere "Versionen" reagieren also gleich.
 
11.02.2011  
 




RGH
Workaround: Syntaxfehler vermeiden!

Gruß
Roland
(wird aber trotzdem schauen, spätestens in XProfan X3 hier mit einer anständigen Fehlermeldung dem Betriebssystem zuvorzukommen.)
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.02.2011  
 




Jörg
Sellmeyer
RGH (11.02.11)
Workaround: Syntaxfehler vermeiden!


Das ist schon eine gute Idee, trotzdem funktioniert das hier ja nicht, wie es soll:

und schon das gibt compiliert auch einen Absturz bei mir
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.02.2011  
 




RGH
Jörg Sellmeyer (11.02.11)
Das ist schon eine gute Idee, trotzdem funktioniert das hier ja nicht, wie es soll:

und schon das gibt compiliert auch einen Absturz bei mir


Das soll ja auch gar nicht funktionieren! Hier sollte allerdings wie bei früheren XProfan-Versionen eine Fehlermeldung kommen. Ein Stringliteral muss in Anführungszeichen stehen. Das tut es hier nicht. Und nur in Stringliteralen werden Ersatzzeichen ausgewertet. Literale ohne Anführungszeichen müssen numerisch sein. Hier wäre die Fehlermeldung angebracht, dass \xAA keine gültige Zahl ist. Wenn Du $AA meinst, solltest Du es auch schreiben. Meinst Du das Zeichen mit dem Code AA, wäre "\xAA" (mit Anführungszeichen!) die korrekte Schreibweise.

Fazit: Korrekte Schreibweise funktioniert, fehlerhafte Schreibweise wird leider ungenügend abgefangen.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
11.02.2011  
 



 
- Seite 2 -



Jörg
Sellmeyer
Aaah - Literaaaal...
Alles klar. Aber immerhin ist dank Fehlinterpretation eine Lücke aufgedeckt worden.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.02.2011  
 




RGH
Ich habe es gefunden: Dass xAA als Zahl interpretiert wird, liegt dran, dass es die Delphi-Version so handhabt.Da steht das x tatsächlich für hex-Werte. Ich habe das jetzt abgefangen.
Der Backslash am Anfang wird nun auch als Fehler erkannt. Ich hatte zwar bislang überprüft, ob ein Ausdruck mit einem Operator anfängt, was ja nur bei + oder - erlaubt ist, aber da den Backslash (ganzzahlige Division) vergessen. Das muss aber schon ewig so sein.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
12.02.2011  
 




Jörg
Sellmeyer
So oft macht man ja auch keine Fehler...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
12.02.2011  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

13.020 Betrachtungen

Unbenanntvor 0 min.
Torsten Rümker02.06.2015
Jörg Sellmeyer29.12.2011
mein07.08.2011
Uwe ''Pascal'' Niemeier01.05.2011
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie