2011-12-05 1 views
1

FileHelpers 라이브러리를 사용하여 거대한 파일을 읽고 있습니다. 아래 기록을 읽기 전에 RecordLine을 변경하고 싶습니다.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

라이브러리의 마지막 버전으로 당신이 할 수

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

당신은 또한 INotifyRead 인터페이스를 사용할 수 있습니다 :

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

+0

고맙습니다. 마르코스, 최신 버전을 다운로드하고 과제를 사용해 보겠습니다. –

+0

Joel의 답변이있는 최신 버전이 완벽하게 작동합니다. 훌륭한 라이브러리를 제공해 주셔서 감사합니다. –

0

나는 이벤트를 설정한다고 가정합니까?

engine.BeforeReadRecord += engine_BeforeReadRecord; 
2

RecordLine 문자열입니다 가정하면, .Replace() 함수를 호출하지만이 함수는 문자열 인라인을 수정하지 않습니다 — 새로운 문자열을 반환합니다. 결과를 어딘가에 지정해야합니다 :

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

Joel에게 감사드립니다. 이전에 시도했지만 e.RecordLine이 읽기 전용이라는 오류가있었습니다. –

+0

@ RajanR.G 그 경우에는 내 대답과 MarcosMeli를 모두 사용해야합니다. 또한 if 문이 필요하지 않습니다. 문자열에 텍스트가 포함되어 있지 않으면 바꾸기 호출이 아무 효과가 없습니다. –

+0

감사합니다. Joel, 귀하의 해상도가있는 최신 버전이 완벽하게 작동합니다. –

관련 문제