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

Messages postés
375
Date d'inscription
mardi 1 juillet 2003
Dernière intervention
5 juin 2018
- - Dernière réponse : MicDundee
Messages postés
375
Date d'inscription
mardi 1 juillet 2003
Dernière intervention
5 juin 2018
- 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.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
3
Merci
@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.

Merci foliv57 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de foliv57
Messages postés
540
Date d'inscription
mardi 4 août 2009
Dernière intervention
1 février 2013
0
Merci
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
Commenter la réponse de NSUADI
Messages postés
375
Date d'inscription
mardi 1 juillet 2003
Dernière intervention
5 juin 2018
0
Merci
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.
Commenter la réponse de MicDundee
Messages postés
540
Date d'inscription
mardi 4 août 2009
Dernière intervention
1 février 2013
0
Merci
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
Commenter la réponse de NSUADI
Messages postés
375
Date d'inscription
mardi 1 juillet 2003
Dernière intervention
5 juin 2018
0
Merci
Maintenant, ça marche !
J'ai remplacé Regex.Escape(oldValue) par oldValue tout simplement et mes tests ont réussi.
Merci pour ton aide.
Commenter la réponse de MicDundee
Messages postés
540
Date d'inscription
mardi 4 août 2009
Dernière intervention
1 février 2013
0
Merci
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
Commenter la réponse de NSUADI
Messages postés
375
Date d'inscription
mardi 1 juillet 2003
Dernière intervention
5 juin 2018
0
Merci
Ok c'est fait !
Commenter la réponse de MicDundee
Messages postés
540
Date d'inscription
mardi 4 août 2009
Dernière intervention
1 février 2013
0
Merci
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
Commenter la réponse de NSUADI
Messages postés
375
Date d'inscription
mardi 1 juillet 2003
Dernière intervention
5 juin 2018
0
Merci
Merci pour cette correction.
J'aurais dû m'en rendre compte.
Commenter la réponse de MicDundee

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.