VAL/de

Aus MCS Wiki AVR
< VAL
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Funktion

Wandelt eine Zeichenkettendarstellung einer Zahl in eine Zahl um.

 

 

Syntax

var = VAL( s)

 

 

Anmerkungen

var

Numerische Variable der der Wert von s zugewiesen wird.

s

Zeichenkettenvariable.

 

Es hängt vom Variablentyp ab welche Konvertierungsroutinen intern benutzt werden. Single- und Double-Konvertierungen benötigen mehr Programmspeicherplatz.

Bei Verwendung von INPUT verwendet der Compiler intern auch die VAL-Funktion.

Um Code zu sparen gibt es andere Umwandlungsroutinen wie zum Beispiel BINVAL und HEXVAL.

Sie könnten dem Compiler hinzugefügt werden aber das würde Overhead bedeuten weil sie möglicherweise nie benötigt werden.

Mit Zeichenketten als Eingabe oder beim INPUT Befehl ist die Zeichenkette dynamisch und deshalb würden alle Konvertierungs-Routinen benötigt werden.

 

Die VAL()-Funktion prüft nicht auf ungültige Zeichen. Wenn sie benutzt werden dann ergibt das falsche Ergebnisse oder 0.

Falls Sie eine Prüfung auf ungültige Zeichen wünschen dann können Sie die Konstante _VALCHECK mit dem Wert 1 hinzufügen.

Dadurch wird Code erzeugt, der eine ERR-Variable auf 0 oder 1 setzt. Wenn ungültige Zeichen erkannt werden dann gibt ERR 1 zurück.

Da VAL auch beim INPUT-Befehl benutzt wird geht das auch beim INPUT-Befehl.

 

 

 

Siehe auch

STR , HEXVAL , HEX , BIN , BINVAL , STR2DIGITS

 

 

Beispiel


$regfile = "m48def.dat" ' Mikrocontroller
$crystal = 8000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
Dim A As Byte , S As String * 10
S = "123"
A = Val(s) 'Zeichenkette umwandeln
Print A ' 123
 
S = "12345678"
Dim L As Long
L = Val(s)
Print L
End

Beispiel 2


$regfile = "m48def.dat" ' Mikrocontroller
$crystal = 8000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
Const _VALCHECK=1 ' Prüfung bei VAL()
Dim A As Byte , S As String * 10
S = "123"
A = Val(s) 'Zeichenkette umwandeln
Print A ; " ERR:" ; Err ' 123
 
S = "1234a5678"
Dim L As Long
L = Val(s)
Print L ; " ERR:" ; Err
End

Languages   English Deutsch  
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
In anderen Sprachen
Sprache