Обработка кавычек с помощью FileHelpers

Я использую отличную библиотеку 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, в котором есть пустые поля без кавычек И текстовые поля в кавычках с дополнительными кавычками в тексте?

10
задан edosoft 22 February 2011 в 15:31
поделиться