C# bestimmte Zeile mit Text aus einer Textdatei lesen?
Hallo zusammen.
Ich möchte in C# aus einer Texdatei eine bestimmte Zeile finde, beispiel wo "Error" steht, wie mach ich das beispielsweise in dem folgenden Code?
FileStream fs = new FileStream("C:\\Program Files (x86)\\Steam\\steamapps\\common\\OMSI 2\\logfile.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string zeile;
while (sr.Peek() != -1)
{
zeile = sr.ReadLine();
lstLog.Items.Add("" + zeile + "\n");
}
sr.Close();
Grüße und danke im Vorraus!:)
3 Antworten
while (sr.Peek() != -1)
{
zeile = sr.ReadLine();
if (zeile.Contains("Error") == true)
{
// Hier kannst du die "Error"-Zeile(n) verarbeiten
}
lstLog.Items.Add("" + zeile + "\n");
}
Durchsuche einfach deinen Zeilen-Text nach dem Vorkommen von "Error" (ggf. mit passenden Leerzeichen zur Worttrennung; und falls nötig auch mit Regex).
Danach kannst du damit anstellen, was du willst.
Zwei Tipps:
1. Wenn du nur einen Fehler suchst, breche die Schleife ab. Das spart Ressourcen und beschleunigt gerade bei größeren Logs die Verarbeitung.
2. Wenn du mehrere Fehler suchst und sie rechen-intensiver verarbeiten willst, kannst du sie auch in einer Liste puffern:
List<string> errorList = new List<string>();
while (sr.Peek() != -1)
{
zeile = sr.ReadLine();
if (zeile.Contains("Error") == true)
{
errorList.Add(zeile);
}
lstLog.Items.Add("" + zeile + "\n");
}
Nach dem Durchlauf stehen alle "Error"-Zeilen in der Liste errorList zur Verfügung. Dann kannst du sie glatt verarbeiten:
foreach(string error in errorList)
{
// Hier "Error"-Zeilen aufwändig verarbeiten
)
Enjoy it!
Hallo!
Wenn eine Zeile vollständig eingelesen ist, diese nach "Error" absuchen/scannen.
Gruß