使用FileHelpers时修剪字符

时间:2014-03-21 07:15:06

标签: c# filehelpers

我正在使用FileHelpers来解析csv文件并将其加载到数据表中。 我正在使用xml模板并将其传递给ClassBuilder.LoadFromXml

我希望从特定字段中修剪某些字符,我认为我们可以在Xml文件中提到像TrimChars和TrimMode这样做。我试图这样做,但它没有用。

例如。

<DelimitedClass Delimiter=";">
  <ClassName>YourRecordClass</ClassName>
  <SealedClass />
  <IgnoreEmptyLines />  
  <IgnoreFirstLines>1</IgnoreFirstLines>  
  <Fields>   
    <Field Name="MyField" Type="String" TrimChars=";" TrimMode="Right"/> 
  </Fields>
</DelimitedClass>

提前感谢您的帮助。

===== 修改

我没有收到任何错误,只是没有修改我上一个字段的分号。以下是示例,现在在此示例中,您将看到 99999999; 结尾..我想修剪该分号。

HEADER_1   ;HEADER_2;HEADER_3;HEADER_4             ;HEADER_5        ;HEADER_6      ;HEADER_7;HEADER_8   ;HEADER_9;HEADER_10    ;HEADER_11;HEADER_12  ;HEADER_13                      ;HEADER_14;HEADER_15                     ;HEADER_16                  ;HEADER_17               ;HEADER_18;HEADER_19  ;HEADER_20                              ;HEADER_21                                                    ;HEADER_22   ;MyField  ;
000999999;ZZZZZZ_ZZ   ;ZZZZ       ;99zzz9799zzz             ;999Z        ;ZZZZZZZ     ;Z     ;          9;Z   ;ZZZZZZZ;   NOV12;99999999;                  99.990000;    ;                   0.000000;                  -0.990000;                   0.000000;ZZZ      ;ZZZZZZZZ;07/03/2012 12:00:00                    ;07/03/2012 20:35:13                                          ;ZZZ         ;99999999    ;

1 个答案:

答案 0 :(得分:1)

首先,您使用xml节点属性指定字段选项。相反,选项应该像这样定义:

<Field Name=""MyField"" Type=""String""> 
    <TrimMode>Both</TrimMode>
</Field>

其次,当TrimChars属性与字段分隔符相同时,它将不起作用。相反,您应该添加一个额外的虚拟可选最终字段。像这样:

<Fields>   
    <Field Name=""MyField"" Type=""String""> 
        <TrimMode>Both</TrimMode>
    </Field>
    <Field Name=""IgnoreTrailingDelimiter"" Type=""String""> 
        <FieldOptional />
    </Field>
</Fields>