FileHelpers在读取记录之前更改RecordLine

时间:2011-12-05 13:28:02

标签: c# filehelpers

我正在使用FileHelpers库读取一个大文件。我想在阅读下面的记录之前更改RecordLine。

   static void engine_BeforeReadRecord(object sender, BeforeReadRecordEventArgs<object> e)
    {
        if (e.RecordLine.Contains(@"\|"))
            e.RecordLine.Replace(@"\|", "");
    }

他们的在线帮助也说可以改变

Note: if you change the RecordLine the engine use the changed value
This can be useful in some cases but you must be carefull

但它不起作用。我的方式是否有任何问题?

3 个答案:

答案 0 :(得分:3)

假设RecordLine是一个字符串,则调用.Replace()函数,但此函数不会修改字符串内联 - 它返回一个新字符串。您需要在某处分配结果:

if (e.RecordLine.Contains(@"\|"))
    e.RecordLine = e.RecordLine.Replace(@"\|", "");

答案 1 :(得分:0)

我认为您正在设置活动?

engine.BeforeReadRecord += engine_BeforeReadRecord;

答案 2 :(得分:0)

使用库的最新版本,您可以执行该操作

http://www.filehelpers.net/download/

您也可以使用INotifyRead界面:

http://www.filehelpers.net/example/EventsAndNotification/INotifyRead/