Wie man Strings (Textfolgen) mit Val() umwandelt.    zurück

>Val() wandelt einen String ( = Folge von Asciizeichen) in einen Datentyp um, der dem Inhalt des Strings entspricht.

>
Wenn der String ausschaut wie eine Fließkommazahl, dann macht Val() eine Fließkommazahl daraus.

>Val() benutzt die lokale Sprache ihrer Maschine ( hier also deutsch ), die in "locales" festgelegt wurde.

>Sie können Ihre Einstellung mit folgendem Konsolenbefehl überprüfen: "locales" oder "echo $LANG".

>Auf einer deutschen Maschine erhält man : de_DE@euro

>Vorsicht: Mit Kommazahlen und der Ländereinstellung !!

>Steht in einer Textbox1 6,6 mit deutscher Ländereinstellung, dann liefert val(textbox1.text) eine Floatvariable mit dem Wert 6.6

>Steht in der Textbox 6.6 dann liefert val(textbox1.text) ein Datum 06.06.04

>Wollen Sie die Zahl wieder in einen deutschen Text verwandeln , dann nutzen Sie str(zahl) zum umwandeln.


>Das Programm

>Wenn Sie einen string eingeben dann wandelt das Programm den String mit val um und die Art der umgewandelten Variable wird überprüft.

>Das Ergebnis wird ausgegeben.

>Der Code:

>PUBLIC SUB _new()

>TextLabel1.Text="Tippen Sie etwas ein das wie eine Zahl oder eine Kommazahl oder eine Boolesche Variable ausschaut"

>END

>PUBLIC SUB Form_Open()

>END



>PUBLIC SUB Button1_Click()

>x AS Variant

>x = Val(TextBox1.Text)

>IF IsBoolean(x) THEN

>ENDIF

>IF IsInteger(x) THEN

>ENDIF

>IF IsFloat(x) THEN

>ENDIF

>IF IsString(x) THEN

>ENDIF

>END

>Theorie

>Expression = Val ( String )

>Converts a string into a boolean, a number or a date, according to the content of the string. The current localization is used to convert numbers and dates.

>The conversion algorithm is the following :

>Otherwise, NULL is returned.

>Vorsicht: Mit Kommazahlen und der Ländereinstellung !!

>Steht in einer Textbox1 6,6 mit deutscher Ländereinstellung, dann liefert val(textbox1.text) eine Floatvariable mit dem Wert 6.6

>Steht in der Textbox 6.6 dann liefert val(textbox1.text) ein Datum 06.06.04

>Beispiel

>PRINT Val("09/06/72 01:00")

>=> 09/06/72 01:00:00

>PRINT Val("3.1415")

>=> 3.1415 oder 31415 je nach Ländereinstellung

>PRINT Val("6.6")

>=> 6.6 oder 06.06.04 je nach Ländereinstellung !!

>PRINT Val("-25")

>=> -25



>PRINT Val("True")

>=> True



>PRINT IsNull(Val("Gambas"))

>=> True