ValueIsNumeric, ValueIsDate | Gibt true zurück, wenn das Argument vom entsprechenden Typ ist oder in diesen konvertiert werden kann. |
ValueToInt, ValueToNum, ValueToDate | Wandelt das Argument in den entsprechenden internen Datentyp um. |
GetType | Gibt den Datentyp des Argumentes zurück (siehe Obj-Konstanten). |
IsValidType | Gibt true zurück, wenn ein Wert mit ConvertToType in einen gewünschten Datentyp umgewandelt werden kann. |
ConvertToType | Konvertiert einen Wert (any) in einen bestimmten Datentyp. |
StringIsBitmask | Testet ob ein String ein gültiges Bitmask-Format darstellt. |
StringToBitmask | Konvertiert einen String im Bitmask-Format in seinen int-Wert. |
BitmaskToString | Konvertiert einen int-Wert in einen String im Bitmask-Format. |
FormatNumberUnit | Formatiert eine number in einen String im ISO-Zahlenformat (z.B. 1000 B → "1 kB"). |
Der Zugriff auf obige Funktionen erfolgt über das globale Objekt Obj:
x = Obj.Function( Arguments ) Obj.Function Arguments
Die VbScript internen Funkionen zum Umwandeln von Datentypen (z.B. Numerische in Strings und umgekehrt) sind teilweise von der Spracheinstellung des Servers abhängig. Je nach Sprachregion wird zum Beispiel als Dezimaltrennzeichen im String-Format einer Zahl ein Punkt oder Komma verwendet und die Datums-Darstellung ist in verschiedenen Ländern auch unterschiedlich.
Diese Funktionen sind nützlich, um Benutzereingaben von Formularen (Strings) korrekt in die VbScript internen Darstellungen zu wandeln, egal in welcher landesregionalen Dartsellung der Benutzer die Daten eingibt.
if Obj.ValueIsNumeric( aValue ) then if Obj.ValueIsDate( aValue ) then
Gibt true zurück, wenn aValue den enstprechenden Datentyp repräsentiert oder in diesen Typ umgewandelt werden kann. Wenn aValue ein String ist, gibt die Funktion true zurück, wenn der String als numerischer Wert bzw. als Datum interpretiert werden kann und in das entsprechende interne VbScript-Format konvertiert werden kann (mit Hilfe der Obj-Funktionen).
x = Obj.ValueToInt( aValue )
Require: Obj.ValueIsNumeric( aValue )
x = Obj.ValueToNum( aValue )
Require: Obj.ValueIsNumeric( aValue )
x = Obj.ValueToDate( aValue )
Require: Obj.ValueIsDate( aValue )
t = Obj.GetType( aValue )
if Obj.IsValidType( aType, aValue ) then
Gibt true zurück, wenn aValue mit der Funktion ConvertToType in den Datentyp aType konvertiert werden kann.
x = Obj.ConvertToType( aType, aValue )
Require: Obj.IsValidType( aType, aValue )
Bitmasken können verwendet werden, um Mehrfachauswahlen von Optionsfeldern oder Check-Boxen in einer einzigen Zahl (int) zu speichern. Solche Optionsfelder oder Check-Boxen auf Formularseiten liefern ihre Auswahl als Bitmaske im String-Format, wenn sie entsprechend programmiert werden.
Mehrere boolsche Werte (true oder false) können in einem einzigen int-Wert gespeichert werden, indem jedem boolschen Wert ein Bit des int-Wertes zugewiesen wird. Wenn z.B. die Bits 0, 2 und 3 eines int-Wertes gesetzt sind, dann hat der int den Wert (2^0 + 2^2 + 2^3 = 1 + 4 + 8 = 13).
Die String-Darstellung einer solchen Bitmaske ist:
String: "0, 2, 3" Binär : 0000 0000 0000 0000 0000 0000 0000 1101 int : 13
Mit den Funktionen StringToBitmask und BitmaskToString können Bitmasken (int) und Strings in einander umgewandelt werden.
if Obj.StringIsBitmask( aString ) then
Gibt true zurück, wenn aString eine Bitmaske darstellt, welche mit der Funktion StringToBitmask in einen int konvertiert werden kann.
bm = Obj.StringToBitmask( aString )
Require: StringIsBitmask( aString )
s = Obj.BitmaskToString( aBitmask )
Wandelt einen int-Wert einen String im Bitmask-Format (z.B: 13 → "0, 2, 3") um.
s = Obj.FormatNumberUnit( aNumber, aDigits, aFormat )
Formatiert eine Zahl so, dass sie vor dem Dezimalzeichen 1, 2 oder 3 Stellen hat und mit einer Grössenangabe wie "p", "u", "m", "k", "M", "G", "T" versehen wird, je nach Grösse der Zahl.
Mit aDigits kann man bestimmen, wie viele Ziffern angezeigt werden sollen. Wenn jedoch aDigits kleiner ist als die Anzahl Ziffern, die es vor dem Dezimalzeichen braucht, so werden entsprechend mehr Stellen angezeigt. Wenn z.B. aDigits=2 ist, aber aNumber=123, dann werden 3 Stellen angezeigt, nicht nur 2.
Mit aFormat kann die Formatierung vielfältig beeinflusst werden:
aFormat | aDigits | aNumber | Resultat |
---|---|---|---|
"# @B" | 3 | 12 | "12 B" |
"# @B" | 3 | 1024 | "1.00 KiB" |
"# *B" | 3 | 1024 | "1.02 kB" |
"#.# *m" | 3 | 12345 | "12.3 km" |
"#.# *m" | 4 | -0.12345 | "-123.5 mm" |
Wenn aNumber ein int ist, muss in aFormat das Zeichen # an der Stelle stehen, wo die Zahl gedruckt werden soll. Wenn aNumber ein numeric ist (reelle Zahl), so muss in aFormat die Zeichenfolge #.# verwendet werden.
An der Stelle, wo die Grössenordnung (k, M, G, T usw.) gedruckt werden soll, muss das Zeichen * oder @ stehen. Das @ Zeichen kann verwendet werden, wenn nicht 1000er Schritte, sondern 1024er Schritte wie bei Computern oft üblich verwendet werden sollen. Die Grössenordnung wird dann zur Verdeutlichung wiefolgt gekennzeichnet: Ki, Mi, Gi, Ti.
Beispiel: 1024 Bytes wird wiefolgt angezeigt:
"# @B" → "1.000 KiB" "# *B" → "1.024 kB"