Описание функции
SplitL2
Разделяет строку и создаёт список из элементов.
SplitL2(String$, List StringList.s()[, Separator$ = #CRLF$ + #TAB$ + #FF$ + #VT$ + " "])
Параметры
String$ | Строка, которую необходимо разделить |
StringList.s() |
Заранее созданный список (будет очищен перед использованием), являющийся результатом работы функции. |
Separator.s |
Символ являющийся разделителем. Если это строка более одного символа, то каждый символ будет как разделитель. |
Возвращаемое значение
ничего |
Пример
; AZJIO
; https://www.purebasic.fr/english/viewtopic.php?p=585485#p585485
Procedure SplitL2(String$, List StringList.s(), Separator$ = #CRLF$ + #TAB$ + #FF$ + #VT$ + " ")
Protected *S.Integer = @String$
Protected *jc.Character, *c.Character = @String$
ClearList(StringList())
While *c\c
*jc.Character = @Separator$
While *jc\c
If *c\c = *jc\c
*c\c = 0
If *S <> *c
AddElement(StringList())
StringList() = PeekS(*S)
; StringList() = PeekS(*S, (*c - *S) >> 1)
EndIf
*S = *c + SizeOf(Character)
Break
EndIf
*jc + SizeOf(Character)
Wend
*c + SizeOf(Character)
Wend
AddElement(StringList())
StringList() = PeekS(*S)
EndProcedure
Define S.s = "This is a test string to see if split and join are working."
Define NewList MyStrings.s()
SplitL2(S, MyStrings(), " ")
ForEach MyStrings()
Debug "|" + MyStrings() + "|"
Next