Anzahl eines Textes in TXT

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Madde.

    Anzahl eines Textes in TXT

    Hallo zusammen,

    wie kann ich eine TXT mit einem vorgegebenen Suchbegriff durchsuchen und die Summe des Vorkommens ausgeben lassen?
    Ich weiß, der folgende Code ist Schwachsinn aber bislang alles was ich habe. 8|

    VB.NET-Quellcode

    1. For Each zeile In IO.File.ReadLines("Monat\Datei.txt")
    2. If zeile.Contains("Suchbegriff") Then
    3. MessageBox.Show(zeile.Count)
    4. End If
    5. Next


    Wie komme ich hier weiter?

    MfG Madde
    @Madde Nicht String.Contains(), sondern String.IndexOf(), da kannst Du die Startposition angeben, ab welcher gesucht wird.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Die Frage ist, ob auf InText-Auftreten gezählt werden soll. Also nach und suchen und bei Gesundbrunnen gibt's ein Treffer?
    Dann Dim Trefferzahl = DeinText.Split({Suchbegriff}, StringSplitOptions.None).Count - 1
    @ErfinderDesRades: Dein Code kompiliert nicht, Parameterkonflikt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ok, nun wird jede Zeile durchsucht, nur muss ich das immer wieder bestätigen.
    Wie müsste es denn aussehen, dass nur eine Meldung kommt, wo alle Vorkommnise in den Zeilen addiert ausgegeben werden?

    VB.NET-Quellcode

    1. For Each zeile In IO.File.ReadLines("Monat\Datei.txt")
    2. Dim matchCount = zeile.Split({"Suchtext"}, StringSplitOptions.None).Count - 1
    3. MessageBox.Show(matchCount)
    4. Next


    @VaporiZed - Der Suchbegriff ist fix und kann nicht anteilig in einem anderen Wort vorkommen

    MfG Madde
    Du könntest die MessageBox hinter die For-Schleife ziehen und die matchCounts aufsummieren …
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Madde Nix For Each:

    VB.NET-Quellcode

    1. Dim txt = IO.File.ReadAllText("Monat\Datei.txt")
    2. Dim matchCount = txt.Split({"Suchtext"}, StringSplitOptions.None).Count - 1
    3. MessageBox.Show(matchCount.ToString)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!