我正在使用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
但它不起作用。我的方式是否有任何问题?
答案 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/