coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
arithmeticscirclemathematicsstatisticsstringarraybinaryspecial
STR STR{2} SPLIT STW STRLEN STRSTR STRSUB
Name
SPLIT
Syntax
SPLIT(base_string, split_string, variable1 [, variable2, ..., variablen])
Aufklappen Range
base_string, Typ Text
split_string, Typ Text *)
variablei, Typ Text oder real, abhängig von split_string

*) "%s" für Textteile; "%n" für Zahlenteile; Klartext als zu suchende, Leerzeichen und Tabulatoren als trennende Texte.
Aufklappen Description
Zerlegt einen Text (base_string) gemäß einer Aufteilungsvorschrift (split_string) in Teilabschnitte und weist diese einer oder mehreren Variablen zu. Der Rückgabewert der Funktion ist die Anzahl der erfolgreich übergebenen Werte. Trennzeichen zwischen den Daten sind Leerzeichen oder Tabulatoren.
Mit SPLIT kann somit als Umkehrfunktion zu STR() eine Umwandlung eines Textes in eine Zahl ("%n") erfolgen.
Aufklappen Example
Beispiel 1:
n = SPLIT ("15.25", "%n", zahl)
Wandelt den Text in einen numerischen Wert um und weist ihn der Variablen zahl zu.

Beispiel 2:
n = SPLIT ("15.25 kg", "%n %s", zahl, einheit)
Teilt den Text und weißt die beiden Teile einer numerischen und einer Textvariablen zu.

Beispiel 3: (siehe Abbildung)
ausgangstext = "3 Stk. 12x6 cm"
teilungstext = "%n Stk. %nx%n %s"
n = SPLIT (ausgangstext, teilungstext, anzahl, txt1, breite, txt2, hoehe, einheit)
PRINT anzahl, "»"+txt1+"«", breite, "»"+txt2+"«", hoehe, "»"+einheit+"«"


Anstatt in der Teilungsvorschrift "Stk." und "x" explizit vorzugeben, könnte man auch allgemeiner formulieren:
teilungstext = "%n %s %n %s %n %s"

Und sind die Texte "Stk." und das "x"-Zeichen nicht von Interesse, so kann, um nicht zu viele Variablen definieren zu müssen, für beide Texte dieselbe Variable verwendet werden:
n = SPLIT (ausgangstext, teilungstext, anzahl, txt, breite, txt, hoehe, einheit)
Aufklappen Specialities
Die Daten, die separiert werden sollen, sind bestenfalls durch Leerzeichen oder Tabulatorzeichen getrennt. Wechseln sich jedoch Text und Zahl in Folge ohne trennende Zeichen eindeutig ab, so wird der Text dennoch eindeutig auseinandergetrennt. Siehe hierzu im Beispiel den Teil "12x6", der in 3 separate Variablen zerlegt wird.

Beim Umwandeln von Zahlen ist es erforderlich, dass diese in der amerikanischen Notation vorliegen. Also mit einem Punkt als Dezimaltrennzeichen. Sonst wird nur der Vorkammanteil umgewandelt, also der Ganzzahlanteil.

Unter ArchiCAD® 9.0v1 gsince es einen bug, der unter mehrfacher Verwendung der SPLIT-Funktion zu Fehlern führte.
i = SPLIT ("Aus", "%n", n)
i = SPLIT ("66", "%n", n)
PRINT n

Funktionierte nicht korrekt.
Aufklappen ArchiCAD®
since 6.0
Aufklappen References
GDL-Handbuch 6.0 (DE) p. 179
GDL-Handbuch 6.5 (DE) p. 181
GDL-Handbuch 7.0 (DE) p. 181
GDL-Handbuch 8.0 (DE) p. 122
GDL-Handbuch 8.1 (DE) p. 122
GDL-Handbuch 9.0 (DE) p. 207
GDL-Handbuch 10.0 (DE) p. 207
GDL-Handbuch 11.0 (DE) p. 213
GDL Reference Guide 9.0 (INT) p. 199
GDL Reference Guide 10.0 (INT) p. 205
GDL Reference Guide 11.0 (INT) p. 205
GDL Cookbook 3.1 (EN/DE) p. 2.92/2.108/2.146/2.158
 






zu Beispiel 3:
v.o.n.u. ausgangstext, teilungstext, variablei