String.Replace insensible à la casse [Résolu]

Signaler
-
 Utilisateur anonyme -
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.

9 réponses

Messages postés
420
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
6
@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.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
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

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.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
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

Maintenant, ça marche !
J'ai remplacé Regex.Escape(oldValue) par oldValue tout simplement et mes tests ont réussi.
Merci pour ton aide.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
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

Ok c'est fait !
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
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

Merci pour cette correction.
J'aurais dû m'en rendre compte.