Не работает кубик Split

Sean

Client
Регистрация
05.02.2019
Сообщения
6
Благодарностей
0
Баллы
1
Всем привет, давненько не пользовался зенно, а тут необходимо. не разделяет строку на переменные, суть на скрине. Что я делаю не так? Раньше все работало...
просто ничего не происходит


133579
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113
Всем привет, давненько не пользовался зенно, а тут необходимо. не разделяет строку на переменные, суть на скрине. Что я делаю не так? Раньше все работало...
просто ничего не происходит


Посмотреть вложение 133579
Не поддерживает кубик несколько символов в разделителе, используйте с#

Примерно так:

Код:
string[] size = project.Variables["ИмяПеременной"].Value.Split(":@");
string width = size[0];
string height = size[1];

project.Variables["ИмяПеременной"].Value = width;
project.Variables["ИмяПеременной"].Value. = height;
А в вашем случае разбивайте несколько раз раздельно, а не все слитно 2 сплита разных в 1 обьеденили



Код:
// Получаем строку прокси из зеннопеременной
string proxy = project.Variables["ИмяПеременной"].Value;

// Пример формата: login:pass@ip:port
try
{
    string[] parts = proxy.Split('@');
    if (parts.Length != 2)
        throw new Exception("Неверный формат прокси: отсутствует символ '@'");

    string[] credentials = parts[0].Split(':');
    string[] address = parts[1].Split(':');

    if (credentials.Length != 2 || address.Length != 2)
        throw new Exception("Неверный формат логина/пароля или ip/порта");

    string login = credentials[0];
    string password = credentials[1];
    string ip = address[0];
    string port = address[1];

    // Сохраняем значения в зеннопеременные
    project.Variables["Proxy_Login"].Value = login;
    project.Variables["Proxy_Password"].Value = password;
    project.Variables["Proxy_IP"].Value = ip;
    project.Variables["Proxy_Port"].Value = port;

    project.SendToLog("Прокси успешно разбит: " + login + ":" + password + "@" + ip + ":" + port, 
        ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true, 
        ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Default);
}
catch (Exception ex)
{
    project.SendToLog("Ошибка при разборе прокси: " + ex.Message, 
        ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true, 
        ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Red);
    throw new Exception("Прокси не разобран. Проверь формат.");
}
 
Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113
Не поддерживает кубик несколько символов в разделителе, используйте с#

Примерно так:

string[] size = project.Variables["ИмяПеременной"].Value.Split(":@");
string width = size[0];
string height = size[1];

project.Variables["ИмяПеременной"].Value = width;
project.Variables["ИмяПеременной"].Value. = height;

А в вашем случае разбивайте несколько раз раздельно, а не все слитно 2 сплита разных в 1 обьеденили



// Получаем строку прокси из зеннопеременной
string proxy = project.Variables["ИмяПеременной"].Value;

// Пример формата: login:pass@ip:port
try
{
string[] parts = proxy.Split('@');
if (parts.Length != 2)
throw new Exception("Неверный формат прокси: отсутствует символ '@'");

string[] credentials = parts[0].Split(':');
string[] address = parts[1].Split(':');

if (credentials.Length != 2 || address.Length != 2)
throw new Exception("Неверный формат логина/пароля или ip/порта");

string login = credentials[0];
string password = credentials[1];
string ip = address[0];
string port = address[1];

// Сохраняем значения в зеннопеременные
project.Variables["Proxy_Login"].Value = login;
project.Variables["Proxy_Password"].Value = password;
project.Variables["Proxy_IP"].Value = ip;
project.Variables["Proxy_Port"].Value = port;

project.SendToLog("Прокси успешно разбит: " + login + ":" + password + "@" + ip + ":" + port,
ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true,
ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Default);
}
catch (Exception ex)
{
project.SendToLog("Ошибка при разборе прокси: " + ex.Message,
ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true,
ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Red);
throw new Exception("Прокси не разобран. Проверь формат.");
}
Сплит и в шарпе 2 символа не поддерживает, сплит принимает char а ":@ " это уже string
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113
Сплит и в шарпе 2 символа не поддерживает
Если конечно не речь как хочет человек одним сплитом - 2 разных сплита разбить, но если сплит состоит из нескольких символов, то все поддерживает.
 

Sean

Client
Регистрация
05.02.2019
Сообщения
6
Благодарностей
0
Баллы
1
Не поддерживает кубик несколько символов в разделителе, используйте с#

Примерно так:

string[] size = project.Variables["ИмяПеременной"].Value.Split(":@");
string width = size[0];
string height = size[1];

project.Variables["ИмяПеременной"].Value = width;
project.Variables["ИмяПеременной"].Value. = height;

А в вашем случае разбивайте несколько раз раздельно, а не все слитно 2 сплита разных в 1 обьеденили



// Получаем строку прокси из зеннопеременной
string proxy = project.Variables["ИмяПеременной"].Value;

// Пример формата: login:pass@ip:port
try
{
string[] parts = proxy.Split('@');
if (parts.Length != 2)
throw new Exception("Неверный формат прокси: отсутствует символ '@'");

string[] credentials = parts[0].Split(':');
string[] address = parts[1].Split(':');

if (credentials.Length != 2 || address.Length != 2)
throw new Exception("Неверный формат логина/пароля или ip/порта");

string login = credentials[0];
string password = credentials[1];
string ip = address[0];
string port = address[1];

// Сохраняем значения в зеннопеременные
project.Variables["Proxy_Login"].Value = login;
project.Variables["Proxy_Password"].Value = password;
project.Variables["Proxy_IP"].Value = ip;
project.Variables["Proxy_Port"].Value = port;

project.SendToLog("Прокси успешно разбит: " + login + ":" + password + "@" + ip + ":" + port,
ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true,
ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Default);
}
catch (Exception ex)
{
project.SendToLog("Ошибка при разборе прокси: " + ex.Message,
ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true,
ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Red);
throw new Exception("Прокси не разобран. Проверь формат.");
}
этот текст был для примера дан, не работает даже если один разделитель!!!
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113
этот текст был для примера дан, не работает даже если один разделитель!!!
не работает потому что сплит в одинарных кавычках прописывается а не в двойных
 

Sean

Client
Регистрация
05.02.2019
Сообщения
6
Благодарностей
0
Баллы
1
133580


вот один разделитель, я понять не могу что происходит
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113
этот текст был для примера дан, не работает даже если один разделитель!!!
1. Укажите переменные - которые на скрине не указаны
2. Пронумеруйте слева от вставленных переменных - нумерация с 0, и все там работает

3. Справа иконка синего вопроса на скрине, можете кликнуть и почитать как работать с кубиками
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113
  • Спасибо
Реакции: djaga

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113
Завтра покажу, у меня несколько проектов на сплите с нескольких символов уже лет 5)
Только если туда не передан массив символов типа
C#:
var res = "dfsdsdf".Split(new[] { ':', '@' })[0];
 
  • Спасибо
Реакции: djaga

Sean

Client
Регистрация
05.02.2019
Сообщения
6
Благодарностей
0
Баллы
1
1. Укажите переменные - которые на скрине не указаны
2. Пронумеруйте слева от вставленных переменных - нумерация с 0, и все там работает

3. Справа иконка синего вопроса на скрине, можете кликнуть и почитать как работать с кубиками
немного не понял, вот к примеру текст: test1:test2:test3:test4

я выбираю кубик обработка текста, выбираю split выбираю разделитель, нажимаю выполнить и ничего не происходит.


133582
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113
Только если туда не передан массив символов типа
C#:
var res = "dfsdsdf".Split(new[] { ':', '@' })[0];
....Вот не выдержал, поднялся с кровати....))
133583


C#:
string[] output = "ПРИМЕР1^^^ПРИМЕР2".Split(new string[] { "^^^" }, StringSplitOptions.None);  // Разделяем Split

return output[0];
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113
немного не понял, вот к примеру текст: test1:test2:test3:test4

я выбираю кубик обработка текста, выбираю split выбираю разделитель, нажимаю выполнить и ничего не происходит.


Посмотреть вложение 133582
В данном примере строка будет разбита на 3 куска, отсчет с нуля, снизу надо указать номер куска и переменную куда результат положить
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113
немного не понял, вот к примеру текст: test1:test2:test3:test4

я выбираю кубик обработка текста, выбираю split выбираю разделитель, нажимаю выполнить и ничего не происходит.


Посмотреть вложение 133582
А что должно произойти если вы не указываете куда и что нужно разбивать?
133584
И кликайте на знак вопроса, специально сделано что бы инструкцию посмотреть
133585
 
  • Спасибо
Реакции: Sean

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 498
Благодарностей
868
Баллы
113
....Вот не выдержал, поднялся с кровати....))


C#:
string[] output = "ПРИМЕР1^^^ПРИМЕР2".Split(new string[] { "^^^" }, StringSplitOptions.None);  // Разделяем Split

return output[0];
ну вот теперь всё складывается) Век живи век учись, даже мыслей никогда не было туда массив строк пихать, буду знать)
 
  • Спасибо
Реакции: The_vAe

Sean

Client
Регистрация
05.02.2019
Сообщения
6
Благодарностей
0
Баллы
1
А что должно произойти если вы не указываете куда и что нужно разбивать?
И кликайте на знак вопроса, специально сделано что бы инструкцию посмотреть
аааааа, точно, это же имя задать надо переменной!!!!! блин, спасибо))) Вот я пень, за 3 года забыл все напрочь. Я почему-то считал что автоматом разбить должно,)))))))
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 685
Благодарностей
1 438
Баллы
113
ну вот теперь всё складывается)
Ну так не массив символов, а в одном ведь указано, а не как у вас в несколько) Ну зато будете знать что можно использовать в сплит несколько символов сразу, для разбива как одного :az:
 
  • Спасибо
Реакции: djaga и Sherminator

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)