80% Uebereinstimmung (Express Edition)

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Homeboy002.

    80% Uebereinstimmung (Express Edition)

    Tag,

    Ich hab 2 Texte. Der eine ist in einer Variable der andere Wird eingeben und in ne RichTextBox gesetzt. Wenn die Texte ueber 80% uebereinstimmen, soll ne, jah, sagen war mal Messagebox hochkommen, wo steht, das es fast richtig ist.

    Was vllt. wichtig sein kann: Die Texte sind .ToUpper (Also Uebereinstimmung hat nichts mit Gross- und kleinschreibung zu tun.)

    (Ach, und wenn es 100% ist, nactuerlich nicht ^^... Aber das kann ich auch mit ner If.. machen.)

    Danke
    Muhahaha, das sagt mir viel xD..

    Also. 2 Texte:

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLO.

    Und

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBLLO.

    Wenn hier mehr als 80% der zeichen gleich sind, soll ne Meldung kommen, das es fast richtig ist, was hier dann passieren wuerde.

    Wobei hier:

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLO.

    Und hier:

    HAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBLLO.

    Keine Meldung kommen wuerde, da sich weniger als 80% gleicht.

    Und nochwas: hier:

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLO.

    Und hier:

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLO.

    Wuerde nichts kommen, da es GENAU gleich ist. Besser erklärt? XD
    Wenn du bis Morgen warten kannst, versuche ich für dich eine Funktion zu schreiben.

    Kleiner Denkanstoß: StrComp() und .ToCharArray()

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

    So hab mich doch noch versucht ^^:

    VB.NET-Quellcode

    1. Dim percentage As Integer
    2. Dim EqualsCount As Integer
    3. Dim rtbGreat As RichTextBox = DirectCast(IIf(RichTextBox1.Text.Length > RichTextBox2.Text.Length, RichTextBox2, RichTextBox1), RichTextBox)
    4. For i As Integer = 0 To rtbGreat.Text.Length - 1
    5. If RichTextBox1.Text(i) = RichTextBox2.Text(i) Then
    6. EqualsCount += 1
    7. End If
    8. Next
    9. Dim difference As Integer = Math.Sqrt((RichTextBox1.Text.Length - RichTextBox2.Text.Length) ^ 2)
    10. percentage = IIf(EqualsCount - difference = 0, 100, (EqualsCount - difference) * 100 / rtbGreat.Text.Length)
    11. If percentage >= 80 Then
    12. MsgBox("Fast richtig!")
    13. End If


    Is zwar kein wirklich intelligenter Comparer aber er machts ;)

    Gruß
    ~blaze~