Seite 1 von 1

[solved] isNumber Größenbeschränkung

Verfasst: 28 Jun 2017, 22:04
von Tobei
Hi,

mir scheint es so, als ob die Funktion isNumber nur bis zu einer bestimmen Zahlengröße funktioniert, ich vermute bis zum Maximum eines 32-Bit Integer.

Logauszug:

Code: Alles auswählen

Set  $Expected_Size$ = calculate($Expected_Size$ + "*1024*1024*1024")
The value of the variable "$Expected_Size$" is now: "13958643712"
If
isNumber($Expected_Size$)   <<< result false
not(isNumber($Expected_Size$))   <<< result true
Wäre schön wenn jemand von uib was dazu sagen könnte.


Gruß Tobias

Re: isNumber Größenbeschränkung

Verfasst: 29 Jun 2017, 10:46
von d.oertel
Hallo Tobei,

ja - das ist richtig analysiert:
Die Funktion prüft derzeit auf eine mögliche Konvertierung des stings auf longint:
Wertebereich: -2147483648 .. 2147483647
Speicherbedarf: 4 Byte bzw. 32 Bit

Es ist allerdings eher eine Kleinigkeit diese Prüfung auf int64 abzuändern:
Wertebereich: -9223372036854775808 .. 9223372036854775807
Speicherbedarf: 8 Byte bzw. 64 Bit

Besteht dafür Bedarf ?
Neugierhalber: In welchem Kontext ?

gruß
detlef oertel

Re: isNumber Größenbeschränkung

Verfasst: 29 Jun 2017, 17:12
von Tobei
Hallo Detlef,

danke für deine schnelle Rückmeldung :-)

Wir machen Folgendes:
Nach dem Setup lassen wir per PowerShell Skript die Größe des Installationsverzeichnis berechnen. Dies geschieht in Bytes. Der ermittelte Wert wird mit einem Wert, der in einer Variable gespeichert ist, verglichen. Die Anforderung ist, dass der ermittelte Wert größer gleich dem gespeicherten Wert sein muss. Wir stellen damit sicher, dass uns der Installer nicht mit einem Exitcode 0 anlügen kann. Sprich einfach ein zusätzlicher Test.

Ich habe dir gerade eben den Code mal per Mail geschickt, konkret geht es dann in Zeile 81 schief. Die Größe der Zahl ist relativ schnell erreicht, wenn man in Byte rechnet.


Gruß Tobias

Re: isNumber Größenbeschränkung

Verfasst: 30 Jun 2017, 13:13
von SirTux
Und das geht nicht in größeren Einheiten wie z.B. MByte?

Re: isNumber Größenbeschränkung

Verfasst: 30 Jun 2017, 13:59
von d.oertel
Hi,

hier ist der fix:
http://download.uib.de/opsi4.0/experime ... .14-1.opsi

isNumber prüft jetzt auf Konvertierbarkeit zu int64

Rückmeldungen werden dankbar entgegengenommen.

gruß
detlef oertel

Re: isNumber Größenbeschränkung

Verfasst: 30 Jun 2017, 15:53
von Tobei
Hi,
SirTux hat geschrieben:Und das geht nicht in größeren Einheiten wie z.B. MByte?
MiB sind meiner Meinung nach zu Grob, damit würden sich beispielsweise keine Tests für Installationen durchführen lassen die <1MiB groß sind. Klar man hätte es evtl. so drehen können, dass man KiB als Basiseinheit verwendet.

Primär ging es aber erst mal um die Klärung der Ursache des Problems. Ich denke Detlef hätte es nicht geändert, wenn es jetzt ein großer Aufwand gewesen wäre.

In diesem Sinne danke dir Detlef für die Änderung. :)


Gruß Tobias