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


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