2010-08-17 9 views
3

J'ai des journaux stockés dans un fichier txt au format suivant.Affichage des informations du fichier journal sur une page Web avec la pagination ASP.NET MVC

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

traitement don

====== 04/08/2010 10: 21: 42A M ========= ================================

L'envoi d'informations vers le serveur

====== 04/08/2010 10:21:43 ==================================== ==

J'ai besoin d'analyser ces lignes dans une liste où l'information entre "====" lignes est comptée comme un enregistrement à afficher sur la page Web en utilisant la pagination dans ASP.NET MVC.

Exemple: La première entrée d'enregistrement serait

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

traitement don

Je n'avais pas de chance jusque là. Comment puis-je le faire?

Répondre

0

En lisant dans le fichier que vous pourriez faire une vérification pour voir si la ligne se termine par =====

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

Il est un peu bavard, mais peut vous donner quelques idées

0

So .. Ignorez le code verbeux dans mon autre réponse. Au lieu de cela, utilisez cette demande de deux lignes:

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

J'oublie toujours les expressions régulières.