Индекс находился вне границ массива.

irving zisman

Client
Регистрация
18.05.2017
Сообщения
225
Благодарностей
28
Баллы
28
В переменой содержится текст формата ip:port:login:password или ip:port , пытаюсь его разбить по переменным таким вот снипетом
C#:
string str = project.Variables["proxy"].Value;

string ip = str.Split(':')[0];
string port = str.Split(':')[1];
string login = str.Split(':')[2];
string pass = str.Split(':')[3];
В первом случае все ок, во втором естественно ошибка, т.к 3 и 4 значения нет. Какую нужно заплатку поставить что бы в ошибку не кидало?
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 526
Благодарностей
1 323
Баллы
113
В переменой содержится текст формата ip:port:login:password или ip:port , пытаюсь его разбить по переменным таким вот снипетом
C#:
string str = project.Variables["proxy"].Value;

string ip = str.Split(':')[0];
string port = str.Split(':')[1];
string login = str.Split(':')[2];
string pass = str.Split(':')[3];
В первом случае все ок, во втором естественно ошибка, т.к 3 и 4 значения нет. Какую нужно заплатку поставить что бы в ошибку не кидало?
Вы не пробовали разделять с помощью кубика Обработка текста - Split? очень полезная и эффективная штука...
 
  • Спасибо
Реакции: irving zisman

irving zisman

Client
Регистрация
18.05.2017
Сообщения
225
Благодарностей
28
Баллы
28
Вы не пробовали разделять с помощью кубика Обработка текста - Split? очень полезная и эффективная штука...
Не подумал, спасибо! Правда код немного громоздкий получается, если конвертнуть в C#
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Вот такая заплатка с еще одной заплаткой внутри, если вдруг какие-то левые данные будут
C#:
string str = project.Variables["Proxy"].Value;
int count = str.Split(':').Count();
string ip = str.Split(':')[0];
string port = str.Split(':')[1];
if(count > 2){
    try{
        string login = str.Split(':')[2];
        string pass = str.Split(':')[3];
    }
    catch{
        throw new Exception("Неправильные данные");
    }
}
 
  • Спасибо
Реакции: irving zisman

irving zisman

Client
Регистрация
18.05.2017
Сообщения
225
Благодарностей
28
Баллы
28
Вот такая заплатка с еще одной заплаткой внутри, если вдруг какие-то левые данные будут
C#:
string str = project.Variables["Proxy"].Value;
int count = str.Split(':').Count();
string ip = str.Split(':')[0];
string port = str.Split(':')[1];
if(count > 2){
    try{
        string login = str.Split(':')[2];
        string pass = str.Split(':')[3];
    }
    catch{
        throw new Exception("Неправильные данные");
    }
}
Спасибо тебе, добрый молодец!
 

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