vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings   |   VB-Versionen: VB.NET12.03.08
Vergleichen von 2 Sätzen (prozentual) (.NET)

Das prozentuale Vergleichen von 2 Sätzen ist realtiv einfach. Hier wird ein möglicher Lösungsvorschlag gezeigt.

Autor:   Jan SchwienBewertung:     [ Jetzt bewerten ]Views:  12.270 
ohne HomepageSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Das prozentuale Vergleichen von 2 Sätzen ist realtiv einfach und wird auch bspw. oft für Suchergebnisse oft.

Ich hoffe, dass euch der folgende Quellcode weiterhilft.
(Hinweis : Überprüfung erfolgt nur über übereinstimmende Wörter !!!)

' Vergleicht zwei Strings und gibt die Übereinstimmung 
' gleicher Wörter in Prozent zurück
Public Function Vergleichen(ByVal String1 As String, _
  ByVal String2 As String) As Integer
 
  Dim DC As Integer
  Dim nPercent As Integer = 0
 
  ' Zählt die übereinstimmenden Wörter
  Dim Treffer As Integer
 
  ' alle Satzzeichen entfernen
  String1 = System.Text.RegularExpressions.Regex.Replace(String1, "[\.,!?;:]", "")
  String2 = System.Text.RegularExpressions.Regex.Replace(String2, "[\.,!?;:]", "")
 
  ' Alle Wörter des 1.Satzes
  Dim Words1() As String = Split(String1.Trim.ToUpper, " ")
 
  ' Alle Wörter des 1.Satzes
  Dim Words2() As String = Split(String2.Trim.ToUpper, " ")
 
  ' Jedes Wort in 1. Satz  durchlaufen
  For i As Integer = 0 To Words1.Length - 1
    If Not Words1(i) = "" Then
      ' Jedes Wort in 1. Satz  mit den Worten im 2. Satz Vergleichen
      For j As Integer = 0 To Words2.Length-1
        If Not Words2(j) = "" Then
          If Words1(i) Like Words2(j) Then
            Treffer += 1
            Exit For
          End If
        End If
      Next j
    Else
      DC += 1
    End If
  Next i
 
  For d As Integer = 0 To Words2.Length - 1
    If Words2(d) = "" Then DC += 1
  Next d
 
  ' vom Längeren Satz ausgehen
  If Words1.Length >= Words2.Length Then
    If Words1.Length - DC > 0 Then
      nPercent = (Treffer * 100 / (Words1.Length - DC))
    End If
  Else
    If Words2.Length - DC > 0 Then
      nPercent = (Treffer * 100 / (Words2.Length - DC))
    End If
  End If
 
  ' Prozentuale Übereinstimmung zurückgeben
  Return nPercent
End Function

Dieser Tipp wurde bereits 12.270 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel