3

我将日志存储在以下格式的 txt 文件中。

======8/4/2010 10:20:45 AM================================= ========

处理捐赠

======8/4/2010 10:21:42A M================================= ========

向服务器发送信息

======8/4/2010 10:21:43 AM================================= ========

我需要将这些行解析为一个列表,其中“====”行之间的信息被计为一条记录,以使用 ASP.NET MVC 中的分页显示在网页上。

示例:第一个记录条目将是

======8/4/2010 10:20:45 AM================================= =================

处理捐赠

到目前为止我没有运气。我该怎么做?

4

2 回答 2

0

所以...忽略我其他答案中的详细代码。而是使用这两条线奇迹:

string texty = "=====........"; //File data
var matches = Regex.Matches(texty, @"={6}(?<Date>.+)={41}\s*(?<Message>.+)");

var results = matches.Cast<Match>().Select(m => new {Date = m.Groups["Date"], Message = m.Groups["Message"]});

我总是忘记正则表达式。

于 2010-08-18T00:50:10.983 回答
0

在读取文件时,您是否可以检查该行是否以 ===== 结尾

var sBuilder = new StringBuilder()
bool lineEnd = false;
var items = new List<string>();
string currentLine = String.Empty
using(var file = new StringReader("log.txt"))
{
  while( (currentLine = file.ReadLine()) != null)
  {
    if(currentLine.EndsWith("===="))
    {
        items.Add(sBuilder.ToString());
        sBuilder.Clear();
    }
    else
        sBuilder.Append(currentLine);
  }
}

这有点冗长,但可能会给你一些想法

于 2010-08-17T00:53:20.797 回答