Operationen für Zeichenketten (Strings)

Übersicht über alle verfügbaren Operationen:

Stringoperationen:

Zusammenfügen von Strings

Mit + werden 2 Strings aneinandergehängt.

V.E.str = "Hello" + " world!"

(-> Ergebnis ist "Hello world!")

+

 

Linken Teilstring
ermitteln

LEFT liefert den linken Anfangsstring eines Strings. Hole anz Zeichen aus dem String str, basierend auf dem ersten Zeichen.

V.E.str = LEFT["Hello world!", 5]

(-> Ergebnis ist "Hello")

 

LEFT[str, anz]

 

Mittleren Teilstring
ermitteln

MID liefert den Teilstring eines Strings. Hole anz Zeichen aus dem String str, beginnend mit dem Zeichen an der Stelle pos.

V.E.str = MID["How are you?", 3, 5]

(-> Ergebnis ist "are")

 

MID[str, anz, pos]

Rechten Teilstring
ermitteln

RIGHT liefert den rechten Endstring eines Strings. Hole anz Zeichen aus dem String str, basierend auf dem letzten Zeichen.

V.E.str = RIGHT["Hello world! How are you?", 12]

(-> Ergebnis ist "How are you?")

 

RIGHT[str, anz]

Stringlänge ermitteln

LEN liefert die Länge (Anzahl Zeichen) eines Strings.

P1 = LEN["Hello world! How are you?"]

(-> Ergebnis ist 25)

LEN[str]

Zeichenwert ermitteln
[ab V3.1.3079.21]

ORD liefert den numerischen Wert eines Zeichens in einem String an der Stelle pos.

P1 = ORD["Hello world!”, 1]

(-> Ergebnis ist 72, Zeichenwert von "H”)

P2 = ORD["Hello world!”, 7]

(-> Ergebnis ist 119, Zeichenwert von "w”)

Wird keine Position pos angegeben, so wird der Wert des ersten Zeichens zurückgegeben.

Wird eine Position pos angegeben, die größer ist als die Länge der Zeichenkette, dann wir der Fehler ID 21545 ausgegeben.

Für ASCII-Zeichen gibt die Funktion ORD exakt den ASCII-Wert zurück.

Bei leeren Zeichenketten ist der Rückgabewert 0.

ORD[str, pos]
oder
ORD[str]

Hinweis

notice

Bei FIND[..] wird zwischen Groß- und Kleinbuchstaben unterschieden!

Teilstring suchen

FIND sucht einen String str2 in einem String str1 und liefert als Ergebnis die Position der ersten Übereinstimmung von str2 in str1.

V.E.str1 = "Hello world! How are you?"

V.E.str2 = "How"

P1 = FIND[V.E.str1, V.E.str2]

(-> Ergebnis ist 14)

Ist String str2 in String str1 nicht vorhanden, so liefert FIND als Ergebnis den Wert 0.

V.E.str1 = "Hello world! How are you?"

V.E.str2 = "today"

P1 = FIND[V.E.str1, V.E.str2]

(-> Ergebnis ist 0)

 

FIND[str1, str2]

Teilstring löschen

DELETE löscht in einem String str eine bestimmte Anzahl Zeichen anz, beginnend mit dem Zeichen an der Stelle pos.

V.E.str = DELETE["Hello world! How are you?", 5, 7]

(-> Ergebnis ist "Hello ! How are you?")

 

DELETE[str, anz, pos]

Teilstring einfügen

INSERT fügt einen String str2 in einen String str1 ein, beginnend nach dem Zeichen an der Stelle pos.

V.E.str1 = "Hello ! How are you?"

V.E.str2 = "world"

V.E.str = INSERT[V.E.str1, V.E.str2, 6]

(-> Ergebnis ist "Hello world! How are you?")

 

INSERT[str1, str2, pos]

Teilstring ersetzen

REPLACE ersetzt eine Anzahl Zeichen anz in einem String str1 durch den Teilstring str2, beginnend mit dem Zeichen an der Stelle pos.

V.E.str1 = "What is your name?"

V.E.str2 = "age"

V.E.str = REPLACE[V.E.str1, V.E.str2, 4, 14]

(-> Ergebnis ist "What is your age?")

 

REPLACE[str1, str2, anz, pos]

Strings kombinieren
[ab V3.1.3079.40]

FSTRING generiert Strings mit dynamischem Inhalt. Die Anzahl der Teilstrings ist prinzipiell unbeschränkt und besteht aus statischen und dynamischen Elementen.

  • Statische Elemente sind vorgegebene Strings ("str_stat"). Diese werden direkt in den resultierenden String übernommen.
  • Dynamische Elemente sind alle erlaubten Operationen mit String- und Zahlenwerten (str_dyn). Das Ergebnis dieser Berechnung wird dann ebenfalls als String in den resultierenden String übernommen.

Das Ergebnis einer FSTRING-Operation ist ein String. Mit diesem kann auch wieder mit einem Plus (oder anderen für Strings zulässigen Operatoren) weitergerechnet werden:

  • FSTRING[…] + FSTRING[…]
  • FSTRING[…] + „anderer String“ ..

Auch Verschachtelungen von FSTRING sind damit möglich:

  • FSTRING[.., FSTRING[..]]

V.L.Number = 123

V.L.Float = 3.57

V.E.str = FSTRING["V.L.Number: ", V.L.Number,
                  " / V.L.Float: ", V.L.Float]]

(-> Ergebnis ist: "V.L.Number: 123 / V.L.Float: 3,57")

FSTRING["str_stat", str_dyn, {"str_stat", str_dyn,}]

Vergleichsoperatoren:

Hinweis

notice

Bei Vergleichsoperationen wird zwischen Groß- und Kleinbuchstaben unterschieden!

Gleichheit

V.E.str1 = "Peter"

V.E.str2 = "Peter"

$IF V.E.str1 == V.E.str2

#MSG ["%s ist gleich %s!", V.E.str1, V.E.str2]

$ELSE

#MSG ["Strings sind nicht gleich!"]

$ENDIF

(-> Ergebnis ist "Peter ist gleich Peter")

 

==

Ungleichheit

V.E.str1 = "Peter"

V.E.str2 = "Steve"

$IF V.E.str1 != V.E.str2

#MSG ["%s ist ungleich %s!", V.E.str1, V.E.str2]

$ELSE

#MSG ["Strings sind gleich!"]

$ENDIF

(-> Ergebnis ist "Peter ist ungleich Steve")

 

!=

größer

bzw.

größer gleich

V.E.str1 = "Peter"

V.E.str2 = "Peter"

$IF V.E.str1 > V.E.str2

#MSG ["%s ist groesser als %s!", V.E.str1, V.E.str2]

$ELSEIF V.E.str1 >= V.E.str2

#MSG ["%s ist groesser/gleich %s!", V.E.str1, V.E.str2]

$ENDIF

(-> Ergebnis ist "Peter ist groesser/gleich Peter!")

V.E.str1 = "Peter"

V.E.str2 = "Bob"

$IF V.E.str1 > V.E.str2

#MSG ["%s ist groesser als %s!", V.E.str1, V.E.str2]

$ELSEIF V.E.str1 >= V.E.str2

#MSG ["%s ist groesser/gleich %s!", V.E.str1, V.E.str2]

$ENDIF

(-> Ergebnis ist "Peter ist groesser als Bob!")

 

>

 

>=

kleiner

bzw.

kleiner gleich

V.E.str1 = "Peter"

V.E.str2 = "Peter"

$IF V.E.str1 < V.E.str2

#MSG ["%s ist kleiner als %s!", V.E.str1, V.E.str2]

$ELSEIF V.E.str1 <= V.E.str2

#MSG ["%s ist kleiner/gleich %s!", V.E.str1, V.E.str2]

$ENDIF

(-> Ergebnis ist "Peter ist kleiner/gleich Peter!")

V.E.str1 = "Bob"

V.E.str2 = "Tim"

$IF V.E.str1 < V.E.str2

#MSG ["%s ist kleiner als %s!", V.E.str1, V.E.str2]

$ELSEIF V.E.str1 <= V.E.str2

#MSG ["%s ist kleiner/gleich %s!", V.E.str1, V.E.str2]

$ENDIF

(-> Ergebnis ist "Bob ist kleiner als Tim!")

 

<

 

<=

Konvertierungsfunktionen:

Integer nach String

INT_TO_STR[...]

V.E.str = INT_TO_STR[123]

Real nach String

REAL_TO_STR[...]

V.E.str = REAL_TO_STR[12.34]

String nach Integer

STR_TO_INT[...]

V.E.sgn32 = STR_TO_INT["12"]

String nach Real

STR_TO_REAL[...]

V.E.real64 = STR_TO_REAL["123.45"]