Мой код:
using (StreamReader sr = new StreamReader("Flash Disk/thing.ini"))
{
text = sr.ReadToEnd();
int length = text.Length; //3722
int indexStart = text.IndexOf("DeviceName = "); //3126
int indexEnd = text.IndexOf("DeviceID = "); //3145
string deviceName = text.Substring(indexStart, indexEnd);
Console.WriteLine(name);
}
Он взрывается строка deviceName = text.Substring (indexStart, indexEnd);
Я получаю исключение ArgumentOutOfRangeException, и оно сообщает мне: «Указанный аргумент находится вне диапазона допустимых значений». Ничего больше.
Я потерялся здесь. Любые идеи?
В вашем вопросе общая длина строки составляет 4752
int length = text.Length; //4752
Но Подстрока номер второго параметра представляет количество символов, которые вы хотите получить.
В вашем коде начните с indexStart(4176)
и получите indexEnd(4195)
, длина которого превышает длину строки.
Я думаю, вам нужно использовать indexEnd - indexStart
по второму параметру
int indexStart = text.IndexOf("DeviceName = "); //4176
int indexEnd = text.IndexOf("DeviceID = "); //4195
string deviceName = text.Substring(indexStart, indexEnd - indexStart);