prevnext   » Startseite » Haupt-Referenz » Funktions-Referenz » scan()

scan()

Analyse eines Textes auf eine Konstante und Umwandlung in die entsprechende interne Darstellung.

Syntax:

value scan ( text, intbase = 10, mode64 = -1 )

Parameter:

text Der Quelltext, der analysiert wird, wenn er vom Typ STRING ist. Dabei wird genau eine Konstante (Typ NONE, Ganzzahl, Fließkommazahl, Zeichenkette, Liste oder Map) erkannt.
int32:intbase Zahlenbasis für Zahlen ohne Prefix. Bei der Umwandlung des Textes in eine Ganzzahl sind als Prefix '0b' für Binär, '0o' für Oktal, '0d' für Dezimal und '0x' für Hexadezimal möglich, wobei auch Großbuchstaben verwendet werden können. Ohne Prefix wird eine Ziffernfolge zur Basis intbase ([2..62]) erwartet. Für den Sonderfall intbase==0 gilt: Zahlen ohne Prefix mit führender Null werden als Oktalzahl und alle anderen Zahlen ohne Prefix als Dezimalzahl interpretiert (wie in C/C++). Falls keine gültige Basis (gültig sind 0 und [2..62]) angegeben wurde wird ersatzweise der Wert 10 verwendet.

Die Großbuchstaben A-Z werden als Ziffern mit den Werten 10 bis 35 erkannt. Bei einer Basis <36 werden die Kleinbuchstaben a-z als alternative für die Großbuchstaben erkannt. Bei einer Basis >=36 werden die Kleinbuchstaben als Ziffern mit den Werten 36 bis 61 erkannt.

Weitere Details sind unter dcText::ScanNumber() beschrieben.

int32:mode64 Falls <0: Alle Ganzzahlen ohne folgendem 'Q' bzw. 'q' werden auf jeden Fall als 32-Bit-Typ dcValue::INT32 erkannt.

Falls =0: Ganzzahlen mit folgenden 'Q' bzw. 'q' und Zahlen mit einem Wertebereich außerhalb des Bereiches (INT32_MIN..INT32_MAX) werden als 64-Bit-Typ dcValue::INT64 erkannt.

Falls >0: Alle Ganzzahlen werden als 64-Bit-Typ dcValue::INT64 erkannt.

Beschreibung:

Sollte der Parameter text nicht von Typ STRING sein, dann wird er direkt ohne weitere Umwandlung als Funktionsergebnis geliefert. In diesem Falle enthält $RESULT2 eine leere Zeichenkette.

Anderenfalls ist der Parameter text vom Typ STRING und wird analysiert. Die Analyse erfolgt genau so wie unter »Operanden« beschrieben. Es werden jedoch nur Konstanten, nicht aber Ausdrücke, Funktionen oder Variablen, auch nicht konstante Variablen, erkannt. Der optionale zweite Parameter intbase legt die Basis für die Erkennung einer Ganzzahl fest.

Insbesondere kann die Funktion auch als Gegenstück zu 'print("%y",variable)' verstanden werden. So liefert 'scan(print("%y",VARIABLE))' genau den Inhalt von VARIABLE wieder.

Für das Einlesen von Größenangaben kann auch die Funktion scanSize() verwendet werden. Für das Einlesen von römischen Zahlen sollte die Funktion scanRoman() verwendet werden.

Die Zeichen der Zeichenkette text, die nicht für die Umwandlung verwendet wurden, werden in der Variable $RESULT2 abgespeichert.

Siehe auch:
 Operanden   num()   print() 

Weitere ähnliche Funktionen:

Textanalyse
Funktion Kurzinfo
scan() Analyse eines Textes auf eine Konstante und Umwandlung in die entsprechende interne Darstellung.
scanBitField()
scanCharset()
scanId()
scanInterval()
scanRoman()
scanSize()
scanTime()