Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
StrTran() case insensitive
Message
De
07/07/2010 16:35:57
 
 
À
Tous
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Titre:
StrTran() case insensitive
Versions des environnements
Environment:
VB 9.0
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01471738
Message ID:
01471738
Vues:
163
I am using this for a StrTran() function followed by a similar function but in case insensitivity:
        ' Equivalent of VFP StrTran()
        ' expC1 String
        ' expC2 Search for specific character
        ' expC3 Replace
        Public Function StrTran(ByVal tcSearchIn As String, ByVal tcSearchFor As String, _
         ByVal tcReplace As String) As String
            Dim loStringBuilder As StringBuilder = New StringBuilder(tcSearchIn)
            Return loStringBuilder.Replace(tcSearchFor, tcReplace).ToString()
        End Function

        ' Equivalent of VFP StrTran() with case insensitive
        ' expC1 String
        ' expC2 Search for specific character
        ' expC3 Replace
        Public Function StrTranCaseInsensitive(ByVal tcSearchIn As String, ByVal tcSearchFor As String, _
         ByVal tcReplace As String) As String
            Dim lnLength As Integer = tcSearchIn.Length
            Dim lnLengthSearchFor As Integer = tcSearchFor.Length
            Dim lnLocation As Integer = 0
            Dim loStringBuilder As New StringBuilder(lnLength)

            ' Check inputs
            If lnLength = 0 Or lnLengthSearchFor = 0 Or lnLengthSearchFor > lnLength Then
                Return tcSearchIn
            End If

            While lnLocation + lnLengthSearchFor <= lnLength

                If String.Compare(tcSearchIn, lnLocation, tcSearchFor, 0, lnLengthSearchFor, True) = 0 Then

                    ' Add the replaced string
                    loStringBuilder.Append(tcReplace)

                    lnLocation = lnLocation + lnLengthSearchFor
                Else

                    ' Advance one character
                    loStringBuilder.Append(tcSearchIn, lnLocation, 1)
                    lnLocation = lnLocation + 1

                End If

            End While

            ' Append remaining characters
            loStringBuilder.Append(tcSearchIn, lnLocation, lnLength - lnLocation)

            Return loStringBuilder.ToString()
        End Function
Would it there be a way to simplify the second method as we did for the first one?
Michel Fournier
Level Extreme Inc.
Designer, architect, owner of the Level Extreme Platform
Subscribe to the site at https://www.levelextreme.com/Home/DataEntry?Activator=55&NoStore=303
Subscription benefits https://www.levelextreme.com/Home/ViewPage?Activator=7&ID=52
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform