2010-08-17 30 views
3

我有以下格式存儲在txt文件中的日誌。使用ASP.NET MVC分頁在Web頁面上顯示日誌文件信息

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

處理捐贈

====== 2010年8月4日10:21:42A中號========= ================================

信息發送到服務器

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

我需要將這些行解析到列表中,其中「====」行之間的信息被計爲一條記錄,以便在ASP.NET MVC中使用分頁顯示在網頁上。

實施例:第一個記錄的項將是

====== 2010年8月4日上午10時20分四十五秒=============== ==================================

處理捐贈

我沒有運氣至今。我該怎麼做?

回答

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); 
    } 
} 

這是一個有點冗長,但可能給你一些想法

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"]}); 

我總是忘記正則表達式。

相關問題