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 に答える