格式化文本文件的有效方法

时间:2012-11-16 05:31:25

标签: c# .net text-files

我有大约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, ...

2 个答案:

答案 0 :(得分: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()将结果转储到磁盘。

答案 1 :(得分:1)

当您在代码中迭代文件的每一行时,您有两个选项来检查日期: