ログ ファイルのテキストの各行から「改行」文字を削除しようとしています。
以下は、ストリーム リーダーで読み込んでいるエントリの例です:-
<![LOG[Raising event:
[SMS_CodePage(850), SMS_LocaleID(2057)]
instance of SoftDistProgramStartedEvent
{
AdvertisementId = "000216F6";
ClientID = "GUID:B55C2757-CBAE-468E-B54F-46CAF2ECF68F";
CommandLine = "\"C:\\WINNT\\system32\\cscript.exe\" /nologo Shutdown_Desktops_Overnight.vbs";
DateTime = "20130211080211.784000+000";
MachineName = "DWD*****";
PackageName = "0000073C";
ProcessID = 2516;
ProgramName = "Shutdown Desktops Overnight";
SiteCode = "S00";
ThreadID = 3640;
UserContext = "NT AUTHORITY\\SYSTEM";
WorkingDirectory = "C:\\WINNT\\system32\\CCM\\Cache\\0000073C.1.System\\";
};
]LOG]!><time="08:02:11.800+000" date="02-11-2013" component="execmgr" context="" type="1" thread="3640" file="event.cpp:522">
実際のログファイルでは、これはファイル内の 1 行として表示され、「改行文字」が四角に置き換えられます。
次のコードを使用してログエントリを読み取ります:-
using (StreamReader sr = new StreamReader(@"C:\Documents and Settings\riversd\Desktop\Logfile2.log"))
{
string Line;
while ((Line = sr.ReadLine()) != null)
{
}
}
問題は、StreamReader が txt ファイルからこのエントリを読み取ると、次の場所で壊れることです:-
"<![LOG[Raising event:"
このエントリのすべての改行文字をその場で削除する必要があります。ファイル全体をメモリに読み込んでから削除したくはありません。読み込んだときに各ログを処理したいのです。
出来ますか?