suchen Textdatei mit C # und zeigt die Zeilennummer und die komplette Zeile, die den Suchbegriff enthält

StackOverflow https://stackoverflow.com/questions/2437716

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.

War es hilfreich?

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 LINQ Where 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top