FileHelpers问题-如何读取不带换行符或定界符的定长文件

时间:2018-12-05 16:09:27

标签: filehelpers

如何使用FileHelpers读取没有换行符或定界符的定长文件?基本上,一行上有一对多记录。我必须读取固定长度的记录,其中包含13个字段,共80个字符。例如,如果有3条记录,那将是一行中包含240个字符的记录。答案不能出自源头,不要让他们以不同的方式输出文件。他们不会让步。我可以放弃FileHelpers,但是我喜欢它的工作方式,因此我首先想在继续之前先看看它是否可行。要回答这个问题,您必须熟悉FileHelpers。

这是一个简单的示例,如我上面解释的,有34条记录...

var FileContent = "car  2010Ford      Mustang        Truck2011Chevy     S10            Car  2018Toyota    Corola         SUV  2017Jeep      Wrangler       ";

[FixedLengthRecord(FixedMode.ExactLength)]
public class dtoCarRecord
{
    [FieldFixedLength(5)]
    public string Type;

    [FieldFixedLength(4)]
    public string Year;

    [FieldFixedLength(10)]
    public string Make;

    [FieldFixedLength(15)]
    public string Model;
}

void ApplyDateUpdates(object parameter)
    {
        var raRecords = new List<dtoRARecord>();

        var engine = new FileHelperAsyncEngine<dtoRARecord>();

        // Read
        using (engine.BeginReadFile((string)parameter))
        {
            // The engine is IEnumerable
            foreach (dtoRARecord detail in engine)
            {
                // your code here
                raRecords.Add(detail);
            }
        }
    }

我希望该文件中有4条记录。

1 个答案:

答案 0 :(得分:0)

在导入文件之前,只需每80个字符分割一次文件即可。

scale