tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
1855
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jul 2003
    Ort
    Gronau, Nordrhein-Westfalen, Germany, Germany
    Beiträge
    634
    Hey...

    Ich hab da mal eine kleine Frage...
    Ich möchte 2 Strings vergleichen, die vllt. nur ungefähr gleich sind, also das sich max. 2 Zeichen unterscheiden.
    Weiß einer wie das geht?
    Meine Idee war die Strings zu splitten, jedes Zeichen einzeln zu vergleichen und die Fehler zu zählen, etwas umständlich oder ?

    Danke!
     

  2. #2
    Registriert seit
    Jul 2003
    Ort
    Gronau, Nordrhein-Westfalen, Germany, Germany
    Beiträge
    634
    Okay, ich habs nun mit der Splitting-Technik gelöst!

    Falls es noch jemanden interessiert, hier ist der Code:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    
    Public Declare Function lstrlen Lib "kernel32.dll" _
        Alias "lstrlenA" (ByVal lpString As Any) _
        As Long
     
    Public Function singleLetters(ByVal str As String) As String()
        Dim ln As Integer
        Dim i As Integer
        Dim arr() As String
        
        ln = lstrlen(str)
        If ln = 0 Then ln = 1
        ReDim arr(0 To ln - 1) As String
        For i = 1 To ln Step 1
            arr(i - 1) = Mid(str, i, 1)
        Next i
        
        singleLetters = arr
    End Function
     
    Public Function compareStrings(ByVal str1 As String, ByVal str2 As String, ByVal collisions As Integer) As Boolean
        Dim a1() As String
        Dim a2() As String
        Dim ls1 As Integer
        Dim ls2 As Integer
        Dim errors As Integer
        Dim i As Integer
        Dim x As Integer
        
        errors = 0
        a1 = singleLetters(str1)
        a2 = singleLetters(str2)
        ls1 = lstrlen(str1)
        ls2 = lstrlen(str2)
        
        If ls1 > ls2 Then
            x = ls1
        ElseIf ls2 > ls1 Then
            x = ls2
        Else
            x = ls1
        End If
        
        For i = 0 To x - 1 Step 1
            On Error Resume Next
            If i > ls1 Or i > ls2 Then
                errors = errors + 1
            Else
                If a1(i) <> a2(i) Then errors = errors + 1
            End If
        Next i
        
        If errors > collisions Then
            compareStrings = False
        Else
            compareStrings = True
        End If
    End Function
     

  3. #3
    Avatar von codeman
    codeman codeman ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Ort
    Salzburg/Austria
    Beiträge
    137
    Hallo,

    Wenn du die exakten Unterschiede feststellen willst, fällt mir auch nichts besseres ein.
    Aber es gibt einen 'Like'-Befehl, da kannst du die Ähnlichkeit prüfen.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    Dim String1, String2
     
    String1 = "Das ist ein Text"
    String2 = "Das ist auch ein Text"
     
    If String1 Like "Das ist*ein Text" = True Then ' * ... irgendwelche Zeichen.
    ...
    End If
     
    Signatur wird geladen...

  4. #4
    Registriert seit
    Jul 2003
    Ort
    Gronau, Nordrhein-Westfalen, Germany, Germany
    Beiträge
    634
    Ja, "Like" ist mir bekannt, nur konnte man es damit ja wie du auch sagtest leider nicht lösen

    Trotzdem danke!
     

Ähnliche Themen

  1. Actionscript 2.0 - Textfeld untersuchen?
    Von SonMiko im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 05.07.09, 20:17
  2. Antworten: 0
    Letzter Beitrag: 16.02.09, 20:10
  3. []Trigger erstellen, Tabelle bei Gleichheit eines Strings füllen
    Von macgyver4711 im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 16.02.09, 18:04
  4. Nur ungefähre if-Bedingung
    Von z0oL im Forum PHP
    Antworten: 4
    Letzter Beitrag: 02.08.04, 11:52
  5. text auf bestimmte Wörter untersuchen ?
    Von altelulex im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 13.04.04, 14:51