String.Replace insensible à la casse

Résolu
Utilisateur anonyme - 18 août 2010 à 17:38
 Utilisateur anonyme - 18 août 2010 à 19:45
Salut !
La fonction String.Replace est sensible à la casse (par défaut) et ce que je ne comprends pas chez MS, c'est pourquoi ne pas avoir ajouter le choix de la casse ou non.

En cherchant, j'ai trouvé une alternative sensée être insensible à la casse :
Replace(Chaîne, Exp1, Exp2, 1, -1, vbTextCompare)

J'ai teste et quedalle ! J'obtiens le même résultat que String.Replace(Exp1, Exp2)

En cherchant plus loin, je croyais avoir trouvé exactement ce que je cherchais. Malheureusement, c'est du C#.
Le lien : ici

Je suis sûr qu'il existe la même chose pour VB 2008 mais comment ?
Merci de votre aide.
A voir également:

9 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
18 août 2010 à 18:47
@NSUADI>

Ce n'est pas plutot :

Public Function Replace(ByVal value As String, ByVal oldValue As String, ByVal newValue As String, ByVal ignoreCase As Boolean)

    If ignoreCase = False Then

        Return value.Replace(oldValue, newValue)

    Else

        Return Regex.Replace(value, Regex.Escape(oldValue), newValue, RegexOptions.IgnoreCase)

    End If

End Function


On fait un simple replace si ignoreCase = False, pas True. (je chipote )

Très belle méthode en tout cas.
3
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
18 août 2010 à 18:01
Voici la solution Vb.net adapté à partir de la solution C# de ton lien:

 Public Function Replace(ByVal value As String, ByVal oldValue As String, ByVal newValue As String, ByVal ignoreCase As Boolean)

        If ignoreCase = True Then

            Return value.Replace(oldValue, newValue)

        Else

            Return Regex.Replace(value, Regex.Escape(oldValue), newValue, RegexOptions.IgnoreCase)
        End If
    End Function


et n'oublie pas d'ajouter
Imports System.Text.RegularExpressions


qui te permet de gérer les expressions régulières(Regex)...
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
Utilisateur anonyme
18 août 2010 à 18:13
Merci pour ta réponse mais oops, que se soit True ou False, il tient compte de la casse.
Il s'en fout comme de sa chemise. lol J'suis maudit.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
18 août 2010 à 18:21
Si c'est True alors on tient compte de la casse
Si c'est False alors on ne tient pas compte de la casse
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 août 2010 à 18:21
Maintenant, ça marche !
J'ai remplacé Regex.Escape(oldValue) par oldValue tout simplement et mes tests ont réussi.
Merci pour ton aide.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
18 août 2010 à 18:27
Clique sur "Réponse acceptée"...afin d'aider les autres qui seraient également intéressés.
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
Utilisateur anonyme
18 août 2010 à 18:29
Ok c'est fait !
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
18 août 2010 à 19:22
Tu as raison Foliv57...j'avais penser à ça aussi,c'est plus logique!!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
0
Utilisateur anonyme
18 août 2010 à 19:45
Merci pour cette correction.
J'aurais dû m'en rendre compte.
0
Rejoignez-nous