c# – FileHelpers在字段中引用和逗号
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – FileHelpers在字段中引用和逗号,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2091字,纯文字阅读大概需要3分钟。
内容图文
![c# – FileHelpers在字段中引用和逗号](/upload/InfoBanner/zyjiaocheng/774/e53a8095cb8b4c3c8b298ff7a2c27b17.jpg)
我有一个csv文件,我正在使用FileHelpers解析,我有一个情况,引号和逗号都可以出现在字段中:
逗号:
323,"PC","28/02/2014","UNI001","5000",0,"Return","Returned Goods, damaged",88.00,15.40,"T1","N",0.00,"R","-",
引用
148,"SI","13/01/2014","CGS001","4000",1,"5","17" Monitor",266.00,45.39,"T1","Y",311.39,"R","-",
我的班级是:
[DelimitedRecord(",")]
public class Transaction
{
public int TRAN_NUMBER;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string TypeText;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string DATE;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string TransactionAccount;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string NOMINAL_CODE;
public int DEPT_NUMBER;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string INV_REF;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string DETAILS;
public string NET_AMOUNT;
public string TAX_AMOUNT;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string TaxCodeName;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string PAID_FLAG;
public string AMOUNT_PAID;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string VatReconText;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string BankReconText;
public string RECON_DATE;
}
我找到了这个帖子
FileHelpers nested quotes and commas – parsing error
engine.BeforeReadRecord += (sender, args) =>
args.RecordLine = args.RecordLine.Replace(@"""", "'");
但它只能帮助引号出现问题,而不是逗号.
是否可以使用FileHelper解决这两个问题,或者我应该寻找替代解决方案?
解决方法:
您可以实现BeforeReadRecord事件来“修复”坏线.
FileHelperEngine engine = new FileHelperEngine<Transaction>();
engine.BeforeReadRecord += BeforeEvent;
private void BeforeEvent(EngineBase engine, BeforeReadRecordEventArgs e)
{
var line = e.RecordLine;
// you have to write the following replacement routine...
var fixedLine = ReplaceEmbeddedCommasAndQuotesWithSomethingDifferent(line);
e.RecordLine = fixedLine; // replace the line with the fixed version
}
在您阅读完记录后,您可以处理它们以反转更换过程以修复它们.
如果您更喜欢在FileHelpers类中定义所有逻辑,则可以实现INotifyRead< Transaction>而不是使用事件.
内容总结
以上是互联网集市为您收集整理的c# – FileHelpers在字段中引用和逗号全部内容,希望文章能够帮你解决c# – FileHelpers在字段中引用和逗号所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。