FileHelpers修剪值的最后一个字符

时间:2014-01-17 07:30:50

标签: c# filehelpers

var columnNames = new string[] {"A","B","C"};  
var cb = new DelimitedClassBuilder("GeneratedClassName", ",") { IgnoreFirstLines = 0, IgnoreEmptyLines = true, Delimiter = "," };


foreach (var header in columnNames)
{                
    cb.AddField(header, typeof(string));

    cb.LastField.FieldQuoted = true;
    cb.LastField.QuoteChar = '"';
    cb.LastField.QuoteMode = QuoteMode.OptionalForRead;
    cb.LastField.FieldOptional = true;
}

var engine = new FileHelperEngine(cb.CreateRecordClass());
var dataTable = engine.ReadStringAsDT("123 abc Abhi");

在上面的代码片段中,预期行为是将创建数据表。该数据表应包含3列A,B,C和一个记录。该记录的A栏值应为“123 abc Abhi”。 FileHelpersEngine返回的是具有3列A,B,C和一条记录的数据表(到目前为止)。该记录的A列值为“123 abc Abh”(注意最后一个字符'i'被修剪)。为什么修剪最后一个字符?始终不修剪最后一个字符。它仅针对某些输入字符串进行修剪。对于例如如果输入字符串是“TestInput”,它可以正常工作。我们正在使用FileHelpers版本1.修改最后一个字符的原因是什么?

1 个答案:

答案 0 :(得分:1)

旧版本的FileHelpers库中a bug related to optional fields

如果我没记错的话,一种解决方法是添加另一个(忽略的)可选字段。