StrSplit() [v1.1.13+]

Teilt anhand bestimmter Trennzeichen eine Zeichenkette in mehrere Teilzeichenketten auf.

Array := StrSplit(Zkette , Trennzeichen, WegzulassendeZeichen, MaxParts)

Parameter

Zkette

Eine Zeichenkette, die aufgeteilt werden soll.

Trennzeichen

Wenn dieser Parameter weggelassen wird oder leer ist, wird jedes Zeichen der eingehenden Zeichenkette als einzelne Teilzeichenkette behandelt.

Ansonsten kann Trennzeichen entweder eine einzelne Zeichenkette oder ein Array mit Zeichenketten sein, um zu bestimmen, wo die Abgrenzungen zwischen den Teilzeichenketten erfolgen sollen. Da die Trennzeichen nicht zu den Teilzeichenketten gehören, sind sie nie im Rückgabewert enthalten. Befindet sich außerdem nichts zwischen einem Paar von Trennzeichen innerhalb der eingehenden Zeichenkette, wird das entsprechende Array-Element leer sein.

Zum Beispiel: "," würde die Zeichenkette jeweils bei einem Komma teilen. Ebenso würde [A_Tab, A_Space] jedes Mal ein neues Array-Element erstellen, wenn ein Leer- oder Tabulatorzeichen in der eingehenden Zeichenkette vorkommt.

WegzulassendeZeichen

Eine optionale Liste von Zeichen (Groß-/Kleinschreibung-sensitiv), die jeweils am Anfang und Ende eines Array-Elements weggelassen werden sollen. Wenn WegzulassendeZeichen beispielsweise " `t" wäre, wird bei jedem abgerufenen Element Leer- oder Tabulatorzeichen am Anfang und Ende (aber nicht in der Mitte) entfernt.

Wenn Trennzeichen leer ist, gibt WegzulassendeZeichen an, welche Zeichen das Array nicht enthalten soll.

MaxParts [v1.1.28+]
Wenn dieser Parameter weggelassen wird, wird standardmäßig -1 verwendet, was "kein Limit" bedeutet. Ansonsten können Sie die maximale Anzahl von Teilzeichenketten angeben, die zurückgegeben werden sollen. Wenn dieser Parameter ungleich 0 ist, wird die Zeichenkette maximal MaxParts-1 Mal geteilt und der Rest der Zeichenkette als letzte Teilzeichenkette zurückgegeben (ohne WegzulassendeZeichen am Anfang und Ende).

Rückgabewert

Diese Funktion gibt ein Array (Objekt) mit Zeichenketten zurück.

Bemerkungen

Leerraumzeichen wie Leer- und Tabulatorzeichen werden beibehalten, sofern sie selbst keine Trennzeichen sind oder in WegzulassendeZeichen vorkommen. Tabulator- und Leerzeichen können durch Aufrufen der Trim-Funktion an beiden Enden jeder Variable entfernt werden. Zum Beispiel: MeinArray1 := Trim(MeinArray1).

Um eine Zeichenkette im CSV-Format (kommagetrennte Werte) zu splitten, können Sie eine parsende Schleife verwenden, weil sie nativ mit CSV umgehen kann.

Um die Felder vor dem Splitten anders anzuordnen, verwenden Sie den Sort-Befehl.

Wenn die Teilzeichenketten nicht dauerhaft im Arbeitsspeicher vorhanden sein müssen, sollten Sie in Betracht ziehen, eine parsende Schleife zu verwenden. Sie könnten dadurch viel Speicherplatz sparen, vor allem, wenn Zkette sehr groß ist. Zum Beispiel:

Farben := "rot,grün,blau"
Loop, Parse, Farben, % ","
    MsgBox % "Farbnummer " A_Index " ist " A_LoopField

StringSplit, parsende Schleife, Arrays, Sort, SplitPath, InStr(), SubStr(), StrLen(), StringLower, StringUpper, StrReplace()

Beispiele

Teilt einen Satz in ein Array von Wörtern auf und meldet das vierte Wort.

TestZkette := "Das ist ein Test."
wort_array := StrSplit(TestZkette, A_Space, ".") ; Punkte weglassen.
MsgBox % "Das vierte Wort ist " wort_array[4]

Teilt eine kommagetrennte Liste von Farben in ein Array von Teilzeichenketten auf und geht diese einzeln durch.

Farben := "rot,grün,blau"
for Index, Farbe in StrSplit(Farben, ",")
    MsgBox % "Farbnummer " Index " ist " Farbe