Цитата KASaLEX (
)
Подскажите, можно ли реализовать запись по два символа в массив данных. Есть строка нужно считать её и записать в массив каждую пару символов
Вот примерно так можно реализовать:
Код
.Исходная строка
SetVar "[string]" "Воттакаястрокабезпробелов"
.Получаем длину строки
StrLen "[string]" "[lengthstr]"
.Делим длину строки на 2
Math "[lengthstr] / 2" "0" "[length]"
.Если строка имеет нечетное количество символов, то увеличим на 1
If "[lengthstr] % 2" "<>" "0"
Math "[length] + 1" "0" "[length]"
EndIf
.Создаем пустой массив
SetVar "[array]" ""
.Также инициализируем указатель на символ, начинать будем с первого символа
SetVar "[position]" "1"
.Создаем цикл перебора символов строки
Loop "1" "[length]" "[counter]"
.Получаем два символа из строки и записываем их в ячейку массива
SubStr "[string]" "[position]" "2" "[array[counter]]"
.Сдвигаем указатель на 2
SetVar "[position]" "[position] + 2"
EndLoop
После этого у вас в массиве [array] в каждой ячейке будет по 2 символа
[array1] => "Во" , [array2]=>"тт" , [array3]=>"ак" и т.д.
Добавлено (05 Декабря 2022, 16:33)
---------------------------------------------
Вот с помощью While можно так:
Код
.Исходная строка
SetVar "[string]" "Воттакаястрокабезпробелов"
.Счетчик для индексов массива
SetVar "[i]" "1"
.Выполнять, пока строка не станет пустой
While "[string]" "<>" ""
.Получаем из строки первые 2 символа и записываем их в ячеку массива
SubStr "[string]" "1" "2" "[array[i]]"
.Удаляем первые 2 символа из строки
StrDel "[string]" "1" "2" "[string]"
.Увеличиваем счетчик
SetVar "[i]" "[i] + 1"
EndWhile