PDA

Просмотр полной версии : Библиотека OSU, ошибка функции WSplitStringByToken



aaaSashaMGGU
02.09.2026, 13:38
Добрый день
Хотел написать в тему по библиотекам, но но там нет ни одной подобной темы

Суть ошибки:
При исходной строке "qqq1;qqq2" я получу парсинг на "qqq1" и "qqq2" и число колонок - 2 штуки
При исходной строке "qqq1" я получу парсинг на "" (т.е., ничего) - и число колонок 0
Я один считаю это неверным?..

90215

Я это, конечно, закостылю доппроверкой на этот ноль уже после функции, но, думаю, что нужно править саму библиотеку

Александр Пинэко-Скворцов
02.09.2026, 14:22
Добрый день
Хотел написать в тему по библиотекам, но но там нет ни одной подобной темы

Суть ошибки:
При исходной строке "qqq1;qqq2" я получу парсинг на "qqq1" и "qqq2" и число колонок - 2 штуки
При исходной строке "qqq1" я получу парсинг на "" (т.е., ничего) - и число колонок 0
Я один считаю это неверным?..

90215

Я это, конечно, закостылю доппроверкой на этот ноль уже после функции, но, думаю, что нужно править саму библиотеку

Добрый день.
А какое поведение вы считаете правильным при отсутствии токена в строке?

aaaSashaMGGU
02.09.2026, 14:27
Добрый день.
А какое поведение вы считаете правильным при отсутствии токена в строке?

Вся строка как есть - в нулевой элемент
Количество "распарсенных" элементов при этом = 1
Я полагаю, что так работает любой парсер на любом языке программирования
90216

Cs-Cs
02.09.2026, 14:48
А какое поведение вы считаете правильным при отсутствии токена в строке?Если ни одного разделителя нет - то это должно считаться строкой из 1 элемента.
Так работают всякие explode на PHP, Питоне и даже СтрПолучитьСтроку() в 1Ске.
Вот пример отсюда: https://php.ru/manual/function.explode.html.

Пример #2 Пример возвращаемого значения explode()
<?php
/*
Строка, которая не содержит разделителя, будет
просто возвращать массив с одним значением оригинальной строки.
*/
$input1 = "hello";
$input2 = "hello,there";
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );

?>

Результат выполнения данного примера:

array(1)
(
[0] => string(5) "hello"
)
array(2)
(
[0] => string(5) "hello"
[1] => string(5) "there"
)

Евгений Кислов
03.09.2026, 11:39
Спасибо за замечание, мы его записали.
В данный конкретный момент планов по обновлению библиотеки нет, но когда наберется достаточный набор пожеланий - мы вернемся к этому вопросу.