2

約2000行のログファイルがあります。私はフォーマットの最初のラウンドを経験しました。ただし、ログを今のところ必要なものにフォーマットするのに苦労しました。

現時点の:

line1: 9/13/2011 3:58:05 AM, abef, 1234, ...
line2: 9/14/2011 3:58:05 AM, adef, 1234, ...
line3:
line4: 9/15/2011 3:58:05 AM, bcdef, 134, ...
line5: 3) sdad
line6: azd
line7: [] asdsdee234 
line2014: 9/16/2011 3:58:05 AM, abcf, 1234, ...

私が達成したいのは、ログをクリーンアップして、日付で始まらない行を削除することです。したがって、行 3、5、6、および 7 を削除する必要があります。

希望する結果:

line1: 9/13/2011 3:58:05 AM, abef, 1234, ...
line2: 9/14/2011 3:58:05 AM, adef, 1234, ...
line3: 9/15/2011 3:58:05 AM, bcdef, 134, ...
line2010: 9/16/2011 3:58:05 AM, abcf, 1234, ...
4

2 に答える 2

3
private static IEnumerable<string> ReadOnlyDateTime(string path)
{
    DateTime d;
    string input;
    using (StreamReader stream = new StreamReader(path)) 
    {
        while ((input = stream.ReadLine() != null && DateTime.TryParse(input, out d))
        {
            yield return input;
        }
    }
}

また

DateTime d;
IList<string> = File.ReadLines(path)
                    .Where(line => DateTime.TryParse(line, out d)
                    .ToList();

次に、 を使用して結果をディスクにダンプしFile.WriteAllLines()ます。

于 2012-11-16T05:48:26.873 に答える
1

コード内のファイルの各行を反復処理する場合、日付を確認する 2 つのオプションがあります。

于 2012-11-16T05:36:57.907 に答える