Я пытаюсь импортировать CSV файл, используя TextFieldParser. Конкретный файл 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]);
}
}
Нужно ли вообще правильно разбирать CSV с этим типом форматирования с помощью TextFieldParser?