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


SplitL3

Разделяет строку и создаёт список из указателей на элементы строки.

SplitL3(*c.Character, List PointerList(), *jc.Character)

Параметры

*c.Character Указатель на строку, которую необходимо разделить
PointerList() Заранее созданный список (будет очищен перед использованием), являющийся результатом работы функции.
*jc.Character Указатель на символ являющийся разделителем.

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

ничего

Примечания

В отличии от других функций такой способ экономней, так как не дублирует строки, а только создаёт указатели на них.
Исходная строка подвергается модернизации, так как разделитель в ней заменяется на 0. При желании можно сделать восстановление строки.

Пример

EnableExplicit

; AZJIO
; https://www.purebasic.fr/english/viewtopic.php?p=624213#p624213
Procedure Split3(*c.Character, List PointerList(), *jc.Character)
    Protected *t.Character = *c
    ClearList(PointerList())
    While *c\c
        If *c\c = *jc\c
            *c\c = 0
            *c + SizeOf(Character)
            If *c\c
                AddElement(PointerList())
                PointerList() = *t
                *t = *c
            Else
                Break
            EndIf
        EndIf
        *c + SizeOf(Character)
    Wend
    AddElement(PointerList())
    PointerList() = *t
EndProcedure

Define St.s = "This is a test string to see if split and join are working."

NewList PointerList()
Split3(@St, PointerList(), @" ")

ForEach PointerList()
    Debug PeekS(PointerList())
Next