Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
StrTran() case insensitive
Message
De
07/07/2010 20:40:31
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
 
 
À
07/07/2010 16:35:57
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
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:
01471768
Vues:
82
This message has been marked as the solution to the initial question of the thread.
>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?

Use regular expression (RegEx) to simplify both. Although this wouldn't be a replacement < g > for VFP's powerful strtran it might do what you want:
public string StrTran(string input, string pattern,string replacement, bool ignorecase)
{
   return
       Regex.Replace(input,pattern,replacement,
	ignorecase ? RegexOptions.IgnoreCase : RegexOptions.None);
}
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform