Click here to Skip to main content
15,884,298 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello

I need to find the closest string value from an table or array with 13000 record.

Is possible to use any function to get the exact or the closest value?
Posted
Comments
Yatin_Chauhan 20-Apr-12 10:33am    
means what u need?? canu explain more that i can try to solve that.??
Maciej Los 20-Apr-12 11:23am    
I've had the same problem. Please, take a look at my question and answers. Maybe you'll find an answer...

Probably i need to use this function to compare 2 strings.









VB
Public Class Distance

        ''' <summary>

        ''' Compute Levenshtein distance

        ''' </summary>

        ''' <param name="s">String 1</param>

        ''' <param name="t">String 2</param>

        ''' <returns>Distance between the two strings.

        ''' The larger the number, the bigger the difference.

        ''' </returns>

        Public Function LD(s As String, t As String) As Integer

            Dim n As Integer = s.Length
            'length of s
            Dim m As Integer = t.Length
            'length of t
            Dim d As Integer(,) = New Integer(n, m) {}
            ' matrix
            Dim cost As Integer
            ' cost
            ' Step 1

            If n = 0 Then
                Return m
            End If

            If m = 0 Then
                Return n
            End If

            ' Step 2

            Dim i As Integer = 0
            While i <= n


                d(i, 0) = System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
            End While

            Dim j As Integer = 0
            While j <= m


                d(0, j) = System.Math.Max(System.Threading.Interlocked.Increment(j), j - 1)
            End While

            ' Step 3

            For h As Integer = 1 To n

                'Step 4

                For f As Integer = 1 To m

                    ' Step 5

                    cost = (If(t.Substring(f - 1, 1) = s.Substring(h - 1, 1), 0, 1))

                    ' Step 6


                    d(h, f) = System.Math.Min(System.Math.Min(d(h - 1, f) + 1, d(h, f - 1) + 1), d(h - 1, f - 1) + cost)

                Next
            Next


            ' Step 7


            Return d(n, m)

        End Function

    End Class
 
Share this answer
 
Using RegEx could be an approach that you could consider - http://www.dotnetperls.com/regex-match-vbnet[^].
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900