Hallo liebe Leute,
folgendes Problem:
Ich habe eine Textdatei (etwa 50 MB) mit folgendem, sich immer wiederkehrendem, Aufbau
(unwichtiger Text)
...............................................................
[14:03:37] Job(
Results:
[ TEXT ] TEXT TEXT
[ WORD ] TEXT TEXT
[ INTEGER ] TEXT TEXT
[14:03:38] StateExt()
(unwichtiger Text)
Das ganze wiederholt sich ein paar hundert Mal in der Datei mit jeweils unwichtigem Text dazwischen.
Ich möchte nun in meiner Form (meinetwegen TextBox) jeweils alle Zeilen von den Punkten (die grundsätzlich am Anfang des wichtigen Textes stehen) bis ausschließlich "StateExt()" ausgeben lassen. Die Punkte sind auch nicht unbedingt wichtig, würden nur der Übersicht in der Ausgabe dienen. In den wichtigen Zeilen kommen zwar Phrasen vor, die ich auch gerne weglassen würde, aber das würde wahrscheinlich zu kompliziert.
Keine Ahnung wie ich das angehen soll. Meine Google-Suche bringt mich auch nicht weiter.
Mein Quelltext sieht bisher so aus:
~~~
private Regex suchPhrase = new Regex(@"\.\.\.\.\.\.");
~~~
using (StreamReader strReader = new StreamReader("Datei.txt"))
{
string zeile;
while ((zeile = strReader.ReadLine()) != null)
{
Match treffer = suchPhrase.Match(zeile);
if (treffer.Success)
{
this.count++;
string wert = treffer.Groups[1].Value;
this.txtAusgabe.Text += "Treffer: " + zeile + "\t" + wert + Environment.NewLine;
}
}
}
~~~
Man kann sich vorstellen, dass ich hier nur jeweils die Punkte-Zeile und einige hundert Zeilen, in denen zufällig sechs Punkte stehen, herausbekomme.
Kann mir jemand einen Tipp geben, wie ich jeweils den wichtigen Bereich ausgeben lassen kann?
Vielleicht hat auch jemand ne Idee, wie die Ausgabe am besten realisiert werden kann. Eine Textbox wird ja auch dementsprechend lang. Vielleicht ein Element, in dem ich den jeweiligen Treffer anklicken kann und dann dorthin springe o.Ä.
Vielen Dank für Eure Mühe!
Andre
Hallo andre67,
das ist ein Standardproblem, für das es viele Lösungsmöglichkeiten gibt. Natürlich geht das auch (ziemlich einfach) mit einem passenden Regex-Pattern, siehe z.B. [Artikel] Regex-Tutorial und On-the-fly Regex-Tester: Regex-Lab. Aber auch mit den normalen String-Operationen (z.B. IndexOf/Substring) bekommt man das ohne Weiteres hin.
Jedenfalls wenn man die Grundlagen beherrscht, die wir als bekannt voraussetzen, siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore