Работа с полями, содержащими неэкранированные двойные кавычки, с помощью TextFieldParserC#

Место общения программистов C#
Ответить
Anonymous
 Работа с полями, содержащими неэкранированные двойные кавычки, с помощью TextFieldParser

Сообщение Anonymous »

Я пытаюсь импортировать файл 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?

Подробнее здесь: https://stackoverflow.com/questions/162 ... ieldparser
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»