Name
SPLIT

Syntax
SPLIT (ausgangstext, teilungstext, variable1 [, variable2, ..., variablen])

Aufklappen Wertebereiche
ausgangstext, Typ Text
teilungstext, Typ Text *)
variablei, Typ Text oder real, abhängig von teilungstext

*) "%s" für Textteile; "%n" für Zahlenteile; Klartext als zu suchende, Leerzeichen und Tabulatoren als trennende Texte.

Aufklappen Erläuterung
Zerlegt einen Text (ausgangstext) gemäß einer Aufteilungsvorschrift (teilungstext) 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 Beispiel
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 Besonderheiten
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 gab 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
ab 6.0