Hallo zusammen, wollte mal fragen ob schon irgendwer Erfahrungen mit dem neuen 64bit Client für Mac OS gesammelt hat.
Ich habe aktuell folgendes Problem, dass scheinbar irgendwas wesentliches in den Datentypen geändert wurde.
Im Wesentlichen führen wir in einem Programmteil folgenden Code aus:
Dim l as long
Dim s as String
l = anyMethod() ' diese Methode sollte 3 liefern
s = "foo."+Cstr(l)+".bar"
Die String-Variable 's' sollte nun "foo.3.bar" sein. Am neuen Mac-Client ist es aber offensichtlich "foo.4294967299.bar".
Der Wert ist dabei > 32bit lang und 4294967299(dez) = 100000003(hex) und würde niemals in einen LotusScript-Long passen
Ich hoffe mal nicht, dass die Breite des Long-Datentyps in LS geändert wurde.
Obiger Code ist nur ein sehr kleiner Ausschnitt, aus einem komplexen Programmablauf. Ich hatte leider (mangels Mac) noch nicht die Möglichkeit das Problem genauer zu untersuchen, aber evtl hat schon jemand ähnliches beobachtet.
Gruß
Roland
schon mal mit s = "foo."&Cstr(l)&".bar"
stattdessen probiert?
Also ich hab neue Erkenntnisse:
Unter Mac-64 bit wird der LotusScript-Long intern als 64bit geführt und künstlich auf 32bit beschränkt.
Hier wurde allerdings geschlampt, insbesondere bei der Konvertierung von Hex-Werten.
Weiterhin "funktioniert" im 64bit Client folgender Code
Dim s as String
Dim l as Long
s = "9223372034707292159"
l = CLng(s)
MsgBox "s: " + s + " -> " + CStr( l )
Gibt folgenden String aus: "s: 9223372034707292159 -> 9223372034707292160"
9223372034707292159 = 0111 1111 1111 1111 1111 1111 1111 1111 0111 1111 1111 1111 1111 1111 1111 1111
9223372034707292160 = 0111 1111 1111 1111 1111 1111 1111 1111 1000 0000 0000 0000 0000 0000 0000 0000
PMR wird erstellt, es bleibt spannend ;)