用于ASCII文件导入/映射的C#库

时间:2011-03-08 12:15:48

标签: c# .net interface ascii

这可能是转储问题,但我试一试。

一项常见任务是从ascii文件导入数据。 除文件结构外,它几乎总是一样的。 逗号分开,行分开,需要5行,需要12行......不管... 所以它始终是一个不同的协议/映射,但处理相同......

是否有一个c#库可以帮助支持这种日常场景?

3 个答案:

答案 0 :(得分:4)

这很棒:FileHelpers Library

示例:

档案:

1732,Juan Perez,435.00,11-05-2002 
554,Pedro Gomez,12342.30,06-02-2004 
112,Ramiro Politti,0.00,01-02-2000 
924,Pablo Ramirez,3321.30,24-11-2002 

创建一个映射数据的类。

[DelimitedRecord(",")]
public class Customer
{
    public int CustId;

    public string Name;

    public decimal Balance;

    [FieldConverter(ConverterKind.Date, "dd-MM-yyyy")]
    public DateTime AddedDate;

}

然后使用:

解析
FileHelperEngine engine = new FileHelperEngine(typeof(Customer));

// To Read Use:
Customer[] res = engine.ReadFile("FileIn.txt") as Customer[];

// To Write Use:
engine.WriteFile("FileOut.txt", res);

枚举:

foreach (Customer cust in res)
{
   Console.WriteLine("Customer Info:");
   Console.WriteLine(cust.Name + " - " +
                  cust.AddedDate.ToString("dd/MM/yy"));
}

答案 1 :(得分:1)

您可能需要查看FileHelpers library

答案 2 :(得分:1)

所以这些任务的唯一共同点是阅读文本文件吗?

如果 FileHelpers 对你来说过于苛刻(简单的文本数据等),那么标准的.NET类应该就是你所需要的(String.Split MethodRegex Class,{{3 }})。

它们提供由字符(String.Split)或行(StreamReader)分隔的读数。