作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近的项目要求我读取 csv 文件。人们将我引向 filehelpers,因为“你不应该重新发明轮子”。但是,文档真的很烂,我似乎找不到处理可选引号的方法。这是我的 csv:
2734000585,IDR,04/04/2016,04/04/2016,0000000,1010,SETOR TUNAI,"783275305006511 VENDY",,"820,000.00","5,820,000.00"
我不是生成上述 csv 的人,它来自银行。如您所见,他们的 csv 文件很糟糕并且有一些严重的问题。有些字符串用引号引起来,有些则没有。此外,货币值被编码为字符串。
我为它做了一个类:
using System;
using FileHelpers;
[DelimitedRecord(",")]
public class ImporBii
{
public long RekNum;
public string Currency;
[FieldConverter(ConverterKind.Date, "dd/MM/yyyy")]
public DateTime TransDate;
[FieldConverter(ConverterKind.Date, "dd/MM/yyyy")]
public DateTime RecordDate;
public string Unused1;
public int TransCode;
public string TransCodeStr;
public string Keterangan;
[FieldConverter(ConverterKind.Decimal, "#,##0.00")]
public decimal Debet;
[FieldConverter(ConverterKind.Decimal, "#,##0.00")]
public decimal Kredit;
[FieldConverter(ConverterKind.Decimal, "#,##0.00")]
public decimal Saldo;
}
我认为 filehelpers 足够聪明,可以自己看到引号,但结果是彻底的灾难。请帮我。 :-(
最佳答案
可以引用的字段需要加上[FieldQuoted()]
[DelimitedRecord(",")]
public class ImporBii
{
public long RekNum;
public string Currency;
[FieldConverter(ConverterKind.Date, "dd/MM/yyyy")]
public DateTime TransDate;
[FieldConverter(ConverterKind.Date, "dd/MM/yyyy")]
public DateTime RecordDate;
public string Unused1;
public int TransCode;
public string TransCodeStr;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string Keterangan;
[FieldConverter(ConverterKind.Decimal, ".")]
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public decimal? Drebet;
[FieldConverter(ConverterKind.Decimal, ".")]
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public decimal? Kredit;
[FieldConverter(ConverterKind.Decimal, ".")]
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public decimal? Saldo;
}
关于c# - filehelpers 中的可选引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37784162/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!