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

4

这可能是一个简单的问题,但我还是试一试。

导入ascii文件中的数据是常见的任务之一。 除了文件结构外,它几乎总是相同的。 逗号分隔,行分隔,取5行,取12行...无论什么... 所以它总是不同的协议/映射,但是处理方式相同...

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

3个回答

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 对你来说过于复杂(仅涉及简单文本数据等),标准 .NET 类应该就足够了(String.Split 方法Regex 类StreamReader 类)。

它们提供按字符(String.Split)或按行(StreamReader)分隔读取的功能。


1
更不用说该框架的标准TextFieldParser类了。 - Hans Passant
@Hans Passant:是的,但那只适用于非 VB 恐惧症程序员 :-P (这是指汇编方面) - Jaroslav Jandek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接