2012-05-17 11 views
7

Ho un CSV che assomiglia:Filehelpers Analisi CSV. Come usare l'attributo FieldQuoted?

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

sto marcatura secondo campo in classe con l'attributo delimitato:

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

Ma 3a linea ancora "b, c" essere analizzato come 2 separata valori.

Hai idea di cosa sto sbagliando?

Grazie

risposta

11

non riesco a vedere niente di sbagliato con il codice. Ho appena controllato: il seguente programma funziona perfettamente:

[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(); 
    } 
} 
+0

Grazie, ho usato un modo diverso di creare il motore. Il tuo esempio sembra funzionare bene ... – Sergejs

+0

Ha funzionato a meraviglia per me; grazie! +1 per entrambi. –