Strings vergleichen mit Label und RichBox

  • VB.NET

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Mittlerweile erscheint mir auch als VorlageText eine RichTextBox praktischer. Wäre dies genau so umsetzbar anstatt mit einem Label oben.

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

    Jap mir auch , deshalb hab ich auch schon eine genommen

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Text.RegularExpressions
    3. Public Class Form1
    4. Dim Wortliste1 As New List(Of String)
    5. Dim Wortliste2 As New List(Of String)
    6. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    7. For Each line1 As String In RichTextBox1.Lines
    8. Dim split1 As String() = line1.Split(New [Char]() {" "c, ","c, "."c, ":"c, CChar(vbTab)})
    9. For Each Liste1 As String In split1
    10. If Liste1.Trim() <> "" Then
    11. Wortliste1.Add(Liste1)
    12. End If
    13. Next
    14. Next
    15. For Each line2 As String In RichTextBox2.Lines
    16. Dim split2 As String() = line2.Split(New [Char]() {" "c, ","c, "."c, ":"c, CChar(vbTab)})
    17. For Each Liste2 As String In split2
    18. If Liste2.Trim() <> "" Then
    19. Wortliste2.Add(Liste2)
    20. End If
    21. Next
    22. Next
    23. Dim Fehlerliste = Wortliste2.Except(Wortliste1)
    24. For Each Highlight As String In Fehlerliste
    25. Dim matches As MatchCollection = Regex.Matches(RichTextBox2.Text.ToLower, Highlight.ToLower)
    26. For Each Match As Match In matches
    27. RichTextBox2.Select(Match.Index, Match.Length)
    28. RichTextBox2.SelectionColor = Color.Red
    29. Next
    30. Next
    31. If RichTextBox1.TextLength = RichTextBox2.TextLength Then
    32. Dim Überlänge As String = CStr(RichTextBox2.TextLength - RichTextBox1.TextLength)
    33. MsgBox("Der eingegebene Text ist von der Länge gleich mit Vorgabe !" & vbCrLf & vbCrLf & "Die Anzahl der Fehler beträgt " & Fehlerliste.Count, MsgBoxStyle.Information, "Info")
    34. ElseIf RichTextBox1.TextLength < RichTextBox2.TextLength Then
    35. Dim Überlänge As String = CStr(RichTextBox2.TextLength - RichTextBox1.TextLength)
    36. MsgBox("Der eingegebene Text ist " & Überlänge & " Zeichen länger als die Vorgabe !" & vbCrLf & vbCrLf & "Die Anzahl der Fehler beträgt " & Fehlerliste.Count, MsgBoxStyle.Information, "Info")
    37. ElseIf RichTextBox1.TextLength > RichTextBox2.TextLength Then
    38. Dim Zu_Kurtz As String = CStr(RichTextBox1.TextLength - RichTextBox2.TextLength)
    39. MsgBox("Der eingegebene Text ist " & Zu_Kurtz & " Zeichen kürtzer als die Vorgabe !" & vbCrLf & vbCrLf & "Die Anzahl der Fehler beträgt " & Fehlerliste.Count, MsgBoxStyle.Information, "Info")
    40. End If
    41. Wortliste1.Clear()
    42. Wortliste2.Clear()
    43. End Sub
    44. End Class


    So muss noch ne Batt ins Auto schrauben und mich ne runde bewegen , dann schau ich weiter ...

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „TVX“ ()

    nb1999 schrieb:

    das dieser fehler irgendwie z.B unterstichen oder Farblich anders hervorgehoben wird.
    Wie soll verfahren werden, wenn der komplette Text richtig ist, aber an einer Stelle einfach ein Zeichen fehlt oder zu viel ist?
    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!
    Jap das habe ich mir auch gedacht , aber über die Wortposition kann ich das nicht regeln( deren vergleich ) .

    Wenn dann ein Wort zu kurz währe ,würden auch die Anderen ab da nicht mehr stimmen ;(

    Z.b:

    VB.NET-Quellcode

    1. Dim eingabe1 As String = RichTextBox1.Text
    2. For Each Worte1 As String In Wortliste1
    3. Dim such1 As String = Worte1
    4. Dim position1 As Integer
    5. Dim suchstart1 As Integer = 0
    6. Do
    7. position1 = eingabe1.
    8. IndexOf(such1, suchstart1)
    9. suchstart1 = position1 + 1
    10. If position1 = -1 Then
    11. Exit Do
    12. Else
    13. MsgBox(position1)
    14. End If
    15. Loop
    16. Next

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

    RodFromGermany schrieb:

    nb1999 schrieb:

    das dieser fehler irgendwie z.B unterstichen oder Farblich anders hervorgehoben wird.
    Wie soll verfahren werden, wenn der komplette Text richtig ist, aber an einer Stelle einfach ein Zeichen fehlt oder zu viel ist?


    Hallo,
    Dies könnte man makieren jedoch zeigt meine software so oder so am ende an wie viele zeichen zu viel sind oder ggf. fehlen

    nb1999 schrieb:

    Dies könnte man makieren
    Denk mal über dieses Problem und mögliche Lösungsansätze nach.
    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!