Я использую отличную библиотеку FileHelpers для импорта многих файлов csv, но столкнулся с проблемой. У меня есть файл csv с этими тремя примерными строками
id,text,number
120,"good line this one",789
121,""not good" line", 4456
122,,5446
и этим (примерным) классом
[IgnoreFirst(1)]
[IgnoreEmptyLines()]
[DelimitedRecord(",")]
public sealed class JOURNAL
{
public Int32 ID;
[FieldQuoted('"', QuoteMode.AlwaysQuoted, MultilineMode.NotAllow)]
public string TEXT;
public Int32? NUMBER;
}
Проблема с QuoteMode.AlwaysQuoted
заключается в том, что идентификатор 122 завершится ошибкой:
Поле 'TEXT не начинать с QuotedChar в строке 3. Вы можете использовать FieldQuoted (QuoteMode.OptionalForRead) чтобы разрешить необязательное поле в кавычках
Переключение на QuoteMode.OptionalForRead
завершится ошибкой для идентификатора 121:
Поле ТЕКСТ цитируется, но процитированный char: "не прямо перед разделитель (вы можете использовать [FieldTrim] для избежать этой ошибки)
Итак, как я могу обработать CSV, в котором есть пустые поля без кавычек И текстовые поля в кавычках с дополнительными кавычками в тексте?