Подтвердить что ты не робот

Обработка котировок с помощью 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 заключается в том, что ID 122 завершится с ошибкой:

Поле "ТЕКСТ" не начинается с QuotedChar в строке 3. Вы можете использовать FieldQuoted (QuoteMode.OptionalForRead) для предоставления необязательного поля с кавычками

Переход на QuoteMode.OptionalForRead завершится с ошибкой для id 121:

Поле TEXT цитируется, но цитируется char: "не только перед разделитель (вы можете использовать [FieldTrim] для избегайте этой ошибки)

Итак, как я могу обрабатывать csv, который имеет пустые поля без кавычек И цитируемые текстовые поля с дополнительными кавычками в тексте?

4b9b3361

Ответ 1

Это похоже на случай, который мы не поддерживаем, позвольте мне добавить тестовый пример и заставить его работать в обоих режимах, для первого мы должны проверить правильность семантики, т.е. если QuoteMode.AlwaysQuoted может разрешить, или должно быть, "", но второй вариант должен работать:) Приветствия