Я получаю сообщение об ошибке при вводе в кавычках с разделителями табуляцией. Тот же ввод без кавычек работает отлично. Вот пример строки ввода с '!' обозначающий символ 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.
Спасибо.