Filehelpers Quoted Tab-Separated-Values ​​ошибка

Я получаю сообщение об ошибке при вводе в кавычках с разделителями табуляцией. Тот же ввод без кавычек работает отлично. Вот пример строки ввода с '!' обозначающий символ TAB:

CN!"000012"!"Содержание стр. 1 из 000012"

Вот сообщение об ошибке:

Строка: 1 Столбец: 12. Поле itemID заключено в кавычки, но символ в кавычках: "не находится непосредственно перед разделителем (вы можете использовать [FieldTrim], чтобы избежать этой ошибки)

Я использую ClassBuilder, и вот вывод С# для моего сгенерированного класса:

[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.

Я попытался сделать цитаты, необходимые для всех полей, кроме первого, но не помогло. Он делает то же самое для нескольких похожих классов. По сути, ошибка указывает на первый символ после закрывающей кавычки для первого поля в кавычках, который является символом TAB.

Спасибо.


person litespeed    schedule 28.03.2014    source источник
comment
Вы должны добавить свой ответ ниже, а затем отметить его как правильный ответ. В противном случае он всегда отображается как открытый вопрос.   -  person shamp00    schedule 14.04.2014


Ответы (1)


Я решил проблему. Я начал создавать свою собственную переходную сборку из тех же метаданных, которые я ранее передал в Filehelpers Class Builder (который создал код C#, показанный здесь). Однако я неправильно устанавливал TrimChars FieldTrimAttribute и получал набор TrimChars по умолчанию, предоставленный Filehelpers.

person litespeed    schedule 14.04.2014