Filehelpers разбор CSV. Как использовать атрибут FieldQuoted?

У меня есть CSV-файл, который выглядит так:

a,b,c
a,b,c
a,"b,c",d

Я отмечаю 2-е поле в классе с разделителями атрибутом:

[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.AllowForRead)]
public String ExchangeRate;

Но 3-я строка все еще "b, c" анализируется как 2 отдельных значения.

Вы хоть представляете, что я делаю не так?

Спасибо


person Sergejs    schedule 17.05.2012    source источник


Ответы (1)


Я не вижу ничего плохого в вашем коде. Я только что проверил: следующая программа работает нормально:

[DelimitedRecord(",")]
public class MyClass
{
    public string Field1;
    [FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.AllowForRead)]
    public string ExchangeRate;
    public string Field3;
}

class Program
{
    static void Main(string[] args)
    {
        var engine = new FileHelperEngine<MyClass>();
        string fileAsString = @"a,b,c" + Environment.NewLine +
                              @"a,b,c" + Environment.NewLine + 
                              @"a,""b,c"",d";
        MyClass[] validRecords = engine.ReadString(fileAsString);

        // Check the ExchangeRate values for rows 0, 1, 2 are as expected
        Assert.AreEqual("b", validRecords[0].ExchangeRate);
        Assert.AreEqual("b", validRecords[1].ExchangeRate);
        Assert.AreEqual("b,c", validRecords[2].ExchangeRate);

        Console.ReadKey();
    }
}
person shamp00    schedule 17.05.2012
comment
Спасибо, использовали другой способ создания движка. Кажется, ваш пример работает нормально ... - person Sergejs; 21.05.2012