Функция
StringSplitEx разбивает строку на токены, используя разделители, и сохраняет их в подготовленном пользователем буфере. Функция
StringSplitEx автоматически выравнивает стек на 6 байт.
Параметры:- Указатель на строку, завершающуюся (\0) или 0.
- Указатель на строку разделителей, завершающуюся (\0) или 0.
- Указатель на подготовленный пользователем буфер для сохранения токенов.
Возвращаемое значение:- CX: Количество токенов, сохранённых в буфере. Если строка или буфер недействительны, возвращается 0.
Состояние флагов:- Функция не изменяет состояние флагов.
Особенности:- Токены сохраняются в подготовленном буфере, каждый токен завершается (\0) или 0.
Вспомогательная функция
PrintSplitString выводит разделённую строку на экран. Если функция
PrintSplitString третьим параметром получает значение
FALSE, то она выводит токены, разделённые пробелом, если третьим параметром указано значение
TRUE, то она выводит каждый токен с новой строки. Эта функция автоматически выравнивает стек на 6 байт.
Параметры:- Указатель на строку, заканчивающуюся (\0) или 0.
- Количество токенов.
- Выводить токен через пробел или с каждой новой строки TRUE или FALSE.
- title Автор: Довгополов Евгений Сергеевич
- .286C
- .model small
- .stack 100h
- data segment public
- ____string db "Весенний ветер, лаская "
- ___________db "листву, шепчет тайны, "
- ___________db "даря аромат цветущих "
- ___________db "садов.\0"
- ____buffer db 80 dup(0)
- ____delims db " ,.\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handymac.inc
- ____main proc
- ________call____SetDataSegment
- ________pushs___ds:[buffer]
- ________pushs___es:[delims]
- ________pushs___ds:[string]
- ________call____StringSplitEx
- ________push____FALSE
- ________push____cx
- ________pushs___ds:[buffer]
- ________call____PrintSplitString
- ________push____0
- ________call____ExitProcessEx
- ____main endp
- code ends
- end main