TextFieldParserを使用して CSV ファイルをインポートしようとしています。特定の CSV ファイルが、非標準のフォーマットが原因で問題を引き起こしています。問題の CSV には、フィールドが二重引用符で囲まれています。この問題は、特定のフィールド内にエスケープされていない二重引用符の追加セットがある場合に発生します。
これは、問題を強調する単純化されたテスト ケースです。私が扱っている実際の CSV ファイルは、すべてが同じ形式ではなく、多数のフィールドがあり、これらのファイルのいずれにも、これらのおそらくトリッキーな形式の問題が含まれている可能性があります。
TextReader reader = new StringReader("\"Row\",\"Test String\"\n" +
"\"1\",\"This is a test string. It is parsed correctly.\"\n" +
"\"2\",\"This is a test string with a comma, which is parsed correctly\"\n" +
"\"3\",\"This is a test string with double \"\"double quotes\"\". It is parsed correctly\"\n" +
"\"4\",\"This is a test string with 'single quotes'. It is parsed correctly\"\n" +
"5,This is a test string with fields that aren't enclosed in double quotes. It is parsed correctly.\n" +
"\"6\",\"This is a test string with single \"double quotes\". It can't be parsed.\"");
using (TextFieldParser parser = new TextFieldParser(reader))
{
parser.Delimiters = new[] { "," };
while (!parser.EndOfData)
{
string[] fields= parser.ReadFields();
Console.WriteLine("This line was parsed as:\n{0},{1}",
fields[0], fields[1]);
}
}
TextFieldParser を使用して、このタイプのフォーマットで CSV を適切に解析する方法はありますか?