Filehelpers引用Tab-Separated-Values错误

时间:2014-03-28 20:48:49

标签: filehelpers

我使用Quoted,Tab-Delimited输入收到错误。没有行情的相同输入完美无缺。这是一个示例输入行,其中包含'!'表示TAB字符:

  

CN!" 000012"!"目录第1页000012"

以下是错误消息:

  

行:1列:12。引用字段itemID但引用的字符:"不在分隔符之前(您可以使用[FieldTrim]来避免此错误)

我正在使用ClassBuilder,这是我生成的Class的C#输出:

[DelimitedRecord("  ")]
public sealed class CN
{

[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.String opCode;

[FieldOptional()]
[FieldNullValue(typeof(System.Int32), "0")]
[FieldConverter(typeof(blah.FileHelperClassBuilder+ItemIDConverter))]
[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.Int32 itemID;

[FieldOptional()]
[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.String itemContents;

[FieldOptional()]
[FieldNullValue(typeof(System.Int32), "0")]
[FieldConverter(typeof(blah.FileHelperClassBuilder+AccountConverter))]
[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.Int32? accountID;

[FieldOptional()]
[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.String alternateCode;

[FieldOptional()]
[FieldNotInFile()]
[FieldNullValue(typeof(System.Int32), "0")]
[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.Int32 sequence;

[FieldOptional()]
[FieldNotInFile()]
[FieldNullValue(typeof(System.Byte), "0")]
[FieldTrim(TrimMode.Both, " ")]
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.NotAllow)]
public System.Byte updateItemTime;
}

DelimitedRecord属性确实在双引号之间有一个TAB字符。

我正在使用FileHelpers版本2.9.9.0。

我尝试制作所有Field所需的引号,但第一次,但没有帮助。它对几个类似的类做了同样的事情。基本上,错误指向第一个引用字段的关闭引用之后的第一个字符,这是一个TAB字符。

感谢。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。我已经开始使用相同的元数据创建自己的瞬态程序集,我之前使用的是Filehelpers类构建器(它生成了此处显示的C#代码)。但是,我没有正确设置FieldTrimAttribute TrimChars,并且获得了Filehelpers提供的一组默认TrimChars。