Из-за того, что я получил очень плохой файл данных, мне пришлось придумать код для чтения из текстового файла без разделителей из определенной начальной позиции и определенной длины для создания работоспособного набора данных. Текстовый файл не разделен любым способом, , но У меня есть начальная и конечная позиции каждой строки, которую мне нужно прочитать. Я пришел с этим кодом, но я получаю сообщение об ошибке и не могу понять, почему, потому что, если я заменю 395 на 0, это работает ..
например. Начальная позиция номера счета = 395, конечная позиция = 414, длина = 20
using (StreamReader sr = new StreamReader(@"\\t.txt"))
{
char[] c = null;
while (sr.Peek() >= 0)
{
c = new char[20];//Invoice number string
sr.Read(c, 395, c.Length); //THIS IS GIVING ME AN ERROR
Debug.WriteLine(""+c[0] + c[1] + c[2] + c[3] + c[4]..c[20]);
}
}
Вот ошибка, которую я получаю:
System.ArgumentException: Offset and length were out of bounds for the array
or count is greater than the number of elements from
index to the end of the source collection. at
System.IO.StreamReader.Read(Char[] b