2

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

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

他们的在线帮助还说可以更改

注意:如果您更改 RecordLine 引擎,则使用更改后的值
这在某些情况下可能很有用,但您必须小心

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

4

3 回答 3

3

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

if (e.RecordLine.Contains(@"\|"))
    e.RecordLine = e.RecordLine.Replace(@"\|", "");
于 2011-12-05T17:39:05.040 回答
0

我假设您正在设置事件?

engine.BeforeReadRecord += engine_BeforeReadRecord;
于 2011-12-05T16:22:32.487 回答
0

使用该库的最新版本,您可以做到这一点

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

您还可以使用 INotifyRead 接口:

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

于 2011-12-05T17:34:56.507 回答