CSV 파일을 읽고 XML 파일을 작성하고 싶습니다. csv 라인이 어떻게 분할되는지에 대한 기본적인 생각. 그러나 제 강령은 제게 예외를줍니다. 이해하지 못합니다.CSV 파일의 C# IndexOutOfRangeException
먼저 코드 :
static void Main(string[] args)
{
Console.WriteLine("Insert Filename please");
string path = Console.ReadLine();
string[] source = File.ReadAllLines(path);
XElement output = new XElement("Consumer",
from str in source
let fields = str.Split(',')
select new XElement("consumer",
new XElement(fields[0],
new XAttribute(fields[1], fields[2]),
new XAttribute(fields[3], fields[4])
)));
Console.WriteLine(output);
Console.ReadLine();
}
}
} 그래서 코드 이잖아 내가 그것을 디버깅 할 때, 나는 그것의에 "OutOfRangeException을"라는 오류 메시지가 표시됩니다. 나는 이런 종류의 예외가 무엇을 의미하는지 알고 있지만, 단지 그것을위한 해결책을 찾을 수 없다. 나는 모든 문자를 쉼표로 해석했다. 따라서 일반적으로 배열은 CSV 파일의 필드 양보다 커서는 안됩니다. 내가 지금 OutOfBounds를 얻는 이유는 나를 위해 신비한 일이다.
은 읽기 :편집을 도와 주셔서 감사합니다 : 내가 사용하는 내 CSV 파일이 손상되었습니다, 내가 도움이 아무것도 얻을 didnt가 있도록. 고정되어 코드가 작동하지만 CSV에 빈 필드가 포함되어 있지 않은 한. "이름이 Charakter로 시작할 수없는"sais라는 예외는 16 진수 값 0x20입니다.이 문제를 처리하는 방법은 잘 모릅니다 .Lumenworks의 FastCSVReader 라이브러리를 사용했지만 솔루션을 얻지 못했습니다.
가'source'에있는 모든 문자열을합니까 36 개의','문자 (마지막 줄 포함)가 포함되어 있습니까? –
'fields' 배열의 수를 확인하십시오. 더 많은 요소들? –
소스 파일 –