suchen Textdatei mit C # und zeigt die Zeilennummer und die komplette Zeile, die den Suchbegriff enthält
-
19-09-2019 - |
Frage
Ich brauche Hilfe, um eine Textdatei (Log-Datei) unter Verwendung von c # suchen und die Zeilennummer und die komplette Linie anzuzeigen, die den Suchbegriff enthält.
Lösung
Dies ist eine leichte Modifikation von: http: / /msdn.microsoft.com/en-us/library/aa287535%28VS.71%29.aspx
int counter = 0;
string line;
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
while((line = file.ReadLine()) != null)
{
if ( line.Contains("word") )
{
Console.WriteLine (counter.ToString() + ": " + line);
}
counter++;
}
file.Close();
Andere Tipps
Bit spät, um das Spiel auf diesem, aber durch Zufall auf diesen Beitrag und dachte, dass ich eine alternative Antwort hinzufügen würde.
foreach (var match in File.ReadLines(@"c:\LogFile.txt")
.Select((text, index) => new { text, lineNumber = index+ 1 })
.Where(x => x.text.Contains("SEARCHWORD")))
{
Console.WriteLine("{0}: {1}", match.lineNumber, match.text);
}
Diese verwendet:
-
File.ReadLines , die eliminiert die Bedarf für ein
StreamReader
, und es spielt auch mit LINQWhere
Klausel schön einen gefilterten Satz von Zeilen aus einer Datei zurück. -
Die Überlastung von Enumerable.Select , dass jedes Element des Index zurückgibt, die Sie kann dann fügen Sie 1 bis, die Zeilennummer für die passende Zeile zu erhalten.
Beispiel Eingabe:
just a sample line
another sample line
first matching SEARCHWORD line
not a match
...here's aSEARCHWORDmatch
SEARCHWORD123
asdfasdfasdf
Ausgabe:
3: first matching SEARCHWORD line
5: ...here's aSEARCHWORDmatch
6: SEARCHWORD123
Um den Export zu tun Excel können Sie das CSV-Dateiformat verwenden, wie der Pessimist schrieb. Wenn Sie unsicher sind, was zu schreiben, versuchen, einige Daten in MS Excel eingeben und klicken Sie auf „Speichern unter“ Option im Menü und wählen CSV als Dateityp.
Achten Sie darauf, wenn ein CSV-Datei-Format als in einigen Sprachen schreiben die Standardwerte für die Trennung nicht das Komma ist. In brasilianischen portugiesischen zum Beispiel der Standard ist das Komma als Dezimalzeichen, Punkt als Tausendertrennzeichen und Strichpunkt-Werte für zu trennen. Achten Sie auf die Kultur, wenn das Schreiben.
Die andere Alternative ist mit horizontalen Laschen als Separatoren. Experiment einen String zu schreiben, drücken Sie die TAB-Taste und dann eine andere Zeichenfolge und fügen Sie ihn in Microsoft Excel. Es ist das Standardtrenn in diesem Programm.
Wenn Sie eine Ad-hoc-Lösung für Ihr spezielles Problem verwenden, entweder Alternativen können ohne viel zu denken verwendet werden. Wenn Sie etwas programmieren von anderen Personen verwendet werden (oder in anderen Umgebungen), die kulturspezifische Unterschiede ausmachen.
Oh, ich habe jetzt nur noch in Erinnerung: Sie eine Tabelle mit XML schreiben können, können Sie das tun nur mit dem .NET-Paket. Ich habe vor Jahren getan mit C # .NET 2.0