RichTextBox durchsuchen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Croasider.

    RichTextBox durchsuchen

    Hallo @ all

    Ich möchte gerne meine RichTextBox von oben nach unten nach vorher festgelegten Worten durchsuchen. Also das Programm soll:

    1. RichtextBox durchsuchen
    2. Wenn Wort gefunden eine Funktion öffnen
    3. Nach dem Funktionsabschluss wieder an die Stelle wo das erste Wort gefunden wurde

    Hab z.B. den Text
    printf("Hallo Welt!");

    und ich suche nach printf. Jetzt soll die Funktion geöffnet werden und in Label1 geschrieben werden:
    A: Hallo Welt!

    Wie kann ich die Textbox von oben nach unten durchsuchen lassen, so dass er nachher wieder an die richtige Stelle springt? Und wie kann ich genau den Text ausgeben lassen der in der Klammer steht?

    Hoffe ihr könnt mir helfen. Viele Grüße
    Crosaider
    Hallo Croasider,

    zum Durchsuchen von Texten gibt es - wie meist - mehrere Möglichkeiten.

    1. Regex
    2. IndexOf (Wobei das hier die einzige Methode ist, welche eine Position zurückgibt.
    3. Contains

    Gruss

    mikeb69
    hey

    also ich Durchsuche die Textbox z.B hiermit (das ist jetzt aus nem anderen Projekt von mir):

    VB.NET-Quellcode

    1. For il1 = 1 To 8
    2. Select Case il1
    3. Case 1
    4. sucheNach = "printf"
    5. Case 2
    6. sucheNach = "scanf"
    7. Case 3
    8. sucheNach = "getchar"
    9. Case 4
    10. sucheNach = "fflush"
    11. Case 5
    12. sucheNach = "stdin"
    13. Case 6
    14. sucheNach = "system"
    15. Case 7
    16. sucheNach = "rand"
    17. Case 8
    18. sucheNach = "srand"
    19. End Select
    20. Dim StartIndex As Int32 = 0
    21. While RichTextBox1.Text.IndexOf(sucheNach, StartIndex) >= 0
    22. RichTextBox1.SelectionStart = RichTextBox1.Text.IndexOf(sucheNach, StartIndex)
    23. RichTextBox1.SelectionLength = sucheNach.Length
    24. RichTextBox1.SelectionColor = Color.Red
    25. StartIndex = RichTextBox1.Text.IndexOf(sucheNach, StartIndex) + sucheNach.Length
    26. End While
    27. Next


    Beim meinem eiegntlichen Problem muss ich aber von oben nach unten mehreren Wörtern gleichzeitig suchen. Das geht mit diesem Code ja nicht. Kannst mir mal pls was kleines schreiben? Habe bis jetzt immer nur einzelne Wörter der Reihe nach gesucht - deswegen weiß ich im mom nich so genau wies geht.
    hi,

    wie wär's mit sowas in der art

    VB.NET-Quellcode

    1. For i = 0 To RichTextBox1.Lines.Length - 1
    2. temp = RichTextBox1.Lines(i).ToString
    3. If temp.Contains("printf") Then
    4. Label1.Text = temp.Substring(8, temp.Length - 10)
    5. ElseIf temp.Contains("scanf") Then
    6. ElseIf temp.Contains("getchar") Then
    7. End If
    8. Next
    wenn ich das hier benutze:

    VB.NET-Quellcode

    1. x = 14
    2. ' Rechteck
    3. For i = 0 To RichTextBox1.Lines.Length - 1
    4. temp = RichTextBox1.Lines(i).ToString
    5. If temp.Contains("printf") Then
    6. z.DrawRectangle(stift, 10, x, 780, 60)
    7. x += 60
    8. ElseIf temp.Contains("scanf") Then
    9. ElseIf temp.Contains("getchar") Then
    10. End If
    11. Next


    macht ihr mir unendlich viele Rechtecke. Ich will aber nur dann eins, wenn da "printf" steht. Danach soll er wieder nach oben und in die nächste Zeile springen.

    EDIT: sry habe mich vertan der code geht doch. Jetzt soll nur noch das in der Klammer ausgegeben werden. In deinem Code ging das noch nicht so ganz.

    printf("Hallo Welt!");
    Hallo Welt!

    Am besten wäre es Wenn der Text aus der Klammer kurz in einer Variable zwischengespeichert wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Croasider“ ()