Bestimmtes Vorkommen eines Wortes zählen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von AsdAsd1337.

    Bestimmtes Vorkommen eines Wortes zählen

    Huhu ihr :)

    Diesml bräuchte ich eure Hilfe bei Zählen eines Wortes in einer RichTextBox.

    Hntergrund des ganzen:

    Ich habe einen Texteditor welcher eine RTB durchsucht, und zwar nach dem Wort in der TextBox1.
    Nun will ich das, wenn z.B. 5 mal das Wort 'Hallo' vorkommt, nach dem 5ten mal eine Meldung kommt,
    die anzeigt das fertig durchsucht wurde. Stattdessen fängt mein Code aber einfachh von vorne an...

    VB.NET-Quellcode

    1. Dim pos As Integer = Form1.RichTextBox1.SelectionStart + Form1.RichTextBox1.SelectionLength
    2. Form1.RichTextBox1.Find(TextBox1.Text, pos, RichTextBoxFinds.MatchCase)
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Machs einfach so ^^

    VB.NET-Quellcode

    1. Dim r as new regex("das wort kleingeschrieben")
    2. Dim anzahl as integer = 0
    3. For each m as match in r.matches(richtextbox1.text.tolower)
    4. Anzahl +=1
    5. next
    6. 'und hier fragst du einfach anzahl ab

    Von hand am ipod getippt ;)
    Das klappt soweit schon gaz gut, danke :)

    Allerding habe ich jetzt ein Problem:

    Die RTB enthält folgenden Text:

    111-1

    HALLO-HALLO

    hallo-hallo


    Nus so als Test für alles eingebaut ;)
    Bei den 1sen lappt das auch soweit super,
    beim kleinen hallo auch, nur beim großgeschriebenen funkioniert es nicht, was man
    aber ja auch aus deinem Code entnehmen kann...

    Hab mich schon an der Umwandlung versucht, was ich aber persönlich ziemlich
    blöd finde da er dann ja ggf. das
    falsche markiert. Kann mir da jemand helfen ?
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Du darfst wenn du das ganze auch in der Groß und Klein Schreibung unterscheiden willst nicht das richtextbox1.text.tolower() benutzen sondern nur richtextbox1.text. Da tolower() alles in Kleinbuchstaben umwandelt und somit alles gleich ist.

    Ich hoffe ich habe dein Problem richtig verstanden?!

    lg.

    LucaWelker
    lg.

    LucaWelker
    Jap, das war das was ich gesucht hatte...

    Dankeschön, damit wäre das hier erledigt *Button press*
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Hey,
    die Variable und die For each Schleife sind unnötig.

    Es gibt nämlich eine Matches.Count Methode.

    Hier :

    VB.NET-Quellcode

    1. Dim M As MatchCollection = Regex.Matches(RichTextBox1.Text.ToLower, "hallo")
    2. MessageBox.Show(M.Count)