2012-05-17 23 views
7

Tôi có một CSV mà trông giống như:Filehelpers Phân tích cú pháp CSV. Làm thế nào để sử dụng thuộc tính FieldQuoted?

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

Tôi đánh dấu lĩnh vực thứ 2 trong lớp kích thước xác định với thuộc tính:

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

Nhưng dòng thứ 3 vẫn "b, c" đang được phân tích như 2 riêng biệt giá trị.

Bạn có biết tôi đang làm gì sai không?

Cảm ơn bạn

Trả lời

11

Tôi không thể thấy điều gì sai với mã của bạn. Tôi vừa kiểm tra: chương trình sau hoạt động tốt:

[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

Cảm ơn, đã sử dụng cách tạo công cụ khác nhau. Ví dụ của bạn dường như đang hoạt động tốt ... – Sergejs

+0

Đã làm việc với tôi; cảm ơn bạn! 1 cho cả hai. –

Các vấn đề liên quan