Функция StringSplit

 ↑  ←  Описание функции


StringSplit

Разделяет строку на подстроки, в зависимости от заданного разделителя.

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

Параметры

string Используемая строка.
delimiters Один или более символов используются как разделитель (с учетом регистра).
flag [необязательный] Изменение способа разделения, может быть комбинацией следующих значений:
0 - (по умолчанию), каждый символ в разделителе строки является разделителем.
1 - вся строка разделителя является разделителем.
2 - отключить возвращение количества элементов в первый элемент массива (необходимо использовать UBound(), чтобы получить размер массива).

Возвращаемое значение

Возвращает массив, в котором по умолчанию первый элемент $aArray[0] содержит количество возвращённых строк, остальные элементы ($aArray[1], $aArray[2], и т.д.) содержат разделённые строки. Если flag = 2, то в первый элемент не возвращается количество элементов, а возвращается первый элемент разделённой строки.

Если разделитель в искомой строке не найден, то @error = 1, количество в $aArray[0]=1 и вся строка возвращается в $aArray[1].

Примечания

Если вы используете пустую строку как разделитель "", то каждый символ возвратится в элемент массива.

Если вы хотите использовать подстроку как разделитель, а не как одиночные символы, смотрите пример ниже.

StringSplit() очень полезна как альтернатива StringInStr() и как средство заполнения массива.

Предупреждение, если вы в разделителе используете макро - @CRLF, то фактически используется 2 строчных символа, которые сгенерируют дополнительные пустые элементы в массиве.

См. также

StringRegExp, StringToASCIIArray, StringMid, StringInStr

Пример

#include <Array.au3>
$aDays = StringSplit("Вс,Пн,Вт,Ср,Чт,Пт,Сб", ",")
; $aDays[1] содержит "Вс" ... $aDays[7] содержит "Сб"
_ArrayDisplay($aDays, 'Дни недели') ; функция для просмотра массивов

$sText = "Эта\nСтрока\nСодержит\nПеренос строки\nВ стиле Си."
$aArray = StringSplit($sText, '\n', 1)
_ArrayDisplay($aArray, 'Разбор строки')

For $i = 1 To $aArray[0] ; Цикл показывает все значения поэлементно.
    MsgBox(4096, "Пример 2", "$aArray[" & $i & "] = " & $aArray[$i])
Next