FileHelpers tab \ t разделитель для чтения

Я пробую несколько очень простых примеров из http://www.filehelpers.net/, и они работают, пока Я использую ; или для разделителя. Если я попытаюсь разделить пробелом табуляции, это вызовет исключение.

The delimiter '\t' can´t be found after the field 'CustomterId' at line 2 (the record has less fields, the delimiter is wrong or the next field must be marked as optional).

C # класс

[IgnoreEmptyLines(true), IgnoreFirst(1), DelimitedRecord(@"\t"), IgnoreFirst(0)]
public class Customer
{
    // Fields
    public bool Active;
    public int CustomerId;
    [FieldConverter(ConverterKind.Date, "ddMMyyyy")]
    public DateTime CustomerJoinded;
    [FieldTrim(TrimMode.Both), FieldQuoted('"')]
    public string CustomerName;
}

Файл для чтения:

CustomterId CusomterName    CustomerJoinded Active
1001    ABCD EDF    05052012    TRUE
1002    qwetqwt  15052013   FALSE
1003    wtqwtqwt    03052013     TRUE
1004    qwetwtqwet  04052013     FALSE
1005    gwrtgqwtqwt 05052013     TRUE
1006    rgherghrtqw4gz  07052013     FALSE
1007    wgwherhreh  08052013     TRUE
1008    sfagh34hq3h 09052013     FALSE
1009    wf2rgahasrg 12052013     TRUE
1010    sfgwe3g 05052013     FALSE
1011    fsfwrvg 05052013     TRUE
1012    ra34qbdfb   05052013     FALSE
1013    wtqwg   05052013     TRUE
1014    dsgag3  05052013    FALSE
1015    hgrh    05052013    TRUE
1016    werw    05052013    FALSE

Подскажите, пожалуйста, в чем моя проблема.


person eomeroff    schedule 27.05.2014    source источник
comment
Ваш пример разделен пробелами. Это из-за вставки на веб-сайт или это действительно пробелы между полями? Если да, то это объясняет, почему синтаксический анализатор ожидал \t, но нашел ``.   -  person Factor Mystic    schedule 27.05.2014
comment
Хотя он выглядит как пробел, на самом деле это вкладка, которую я проверил в Sublime с помощью set draw_white_space: all   -  person eomeroff    schedule 27.05.2014
comment
Еще одна мысль ... Я вижу в вашем атрибуте DelimitedRecord вы написали @"\t", но этот синтаксис предназначен для дословных строковых литералов, например, он эквивалентен "\\t". Попробуйте убить @, чтобы заставить его анализировать фактические символы табуляции.   -  person Factor Mystic    schedule 27.05.2014
comment
@FactorMystic, спасибо, хорошее место для начала.   -  person eomeroff    schedule 27.05.2014
comment
@FactorMystic, дайте ответ, чтобы принять его. Оно работает. Большое Вам спасибо.   -  person eomeroff    schedule 27.05.2014


Ответы (1)


В вашем атрибуте DelimitedRecord вы написали @"\t", но этот синтаксис предназначен для дословных строковых литералов, что означает, что он эквивалентен "\\t". Удалите @, чтобы заставить его анализировать фактические символы табуляции.

person Factor Mystic    schedule 27.05.2014