Funktionsreferenz

StringSplit

Teilt einen String, abhängig von den/dem gewählten Trennzeichen (delimiters), in Stringfolgen auf und gibt diese in einem Array zurück.

StringSplit ( "string", "delimiters" [, flag ] )

 

Parameter

string Der zu bearbeitende String.
delimiters Ein oder mehrere Trennzeichen. Die Groß- und Kleinschreibung wird berücksichtigt.
flag [optional] ändert wie das Teilen des Strings funktionieren soll. Es können mehrere Flags zusammen verwendet werden:
  flag = 0 (Standard), es fungiert jedes in den Trennzeichen enthaltene Zeichen als Trennmarkierung
  flag = 1, es wird der gesamte Trennzeichenstring als Trennmarkierung genutzt
  flag = 2, deaktiviert die Rückgabe der Anzahl im ersten Element. Dadurch wird das Array 0-basierend. Man muss nun mit UBound() die Größe des Arrays feststellen.

 

Rückgabewert

Gibt ein Array zurück. Standardmäßig enthält das erste Element ($array[0]) die Anzahl der zurückgegebenen Teilstrings. Die weiteren Elemente ($array[1], $array[2], etc.) enthalten die Teilstrings des aufgeteilten Strings.
Falls das Flag = 2 ist, wird die Anzahl nicht in dem ersten Element enthalten sein.
Wird kein Trennzeichen gefunden, wird @error auf 1 gesetzt, die Anzahl ist 1 ($array[0]), und der gesamte String wird zurückgegeben ($array[1]).

 

Bemerkungen

Wird als Tennzeichen ein Leerstring "" angegeben, so wird jedes Zeichen des Strings im Array als Element zurückgegeben.

Ist das Trennzeichen ein Teilstring anstatt eines einzelnen Zeichens (siehe Beispiel unten).

StringSplit ist sehr brauchbar als Alternative zu StringInStr und zum Befüllen eines Arrays.

Achtung: Wenn man das Makro @CRLF nutzt, gilt dies als 2-Zeichen-String, deshalb werden zusätzliche Leerzeilen erzeugt.

 

Verwandte Funktionen

StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft, StringTrimRight, StringUpper

 

Beispiel


#include<Array.au3>
$days = StringSplit("So,Mo,Di,Mi,Do,Fr,Sa", ",")
;$days[1] enthält "So" ... $days[7] enthält "Sa"
MsgBox(0,"Tage", $days[1])
MsgBox(0,"Tage", $days[7])

$text = "Diese\nLinie\nenthält\nC-style Pausen."
$array = StringSplit($text, '\n', 1)
_ArrayDisplay($array)