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

MicDundee 371 Messages postés mardi 1 juillet 2003Date d'inscription 1 avril 2018 Dernière intervention - 18 août 2010 à 17:38 - Dernière réponse : MicDundee 371 Messages postés mardi 1 juillet 2003Date d'inscription 1 avril 2018 Dernière intervention
- 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 

9 réponses

Répondre au sujet
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 18 août 2010 à 18:47
+3
Utile
@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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de foliv57
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 18 août 2010 à 18:01
0
Utile
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
MicDundee 371 Messages postés mardi 1 juillet 2003Date d'inscription 1 avril 2018 Dernière intervention - 18 août 2010 à 18:13
0
Utile
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
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 18 août 2010 à 18:21
0
Utile
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
MicDundee 371 Messages postés mardi 1 juillet 2003Date d'inscription 1 avril 2018 Dernière intervention - 18 août 2010 à 18:21
0
Utile
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
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 18 août 2010 à 18:27
0
Utile
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
MicDundee 371 Messages postés mardi 1 juillet 2003Date d'inscription 1 avril 2018 Dernière intervention - 18 août 2010 à 18:29
0
Utile
Ok c'est fait !
Commenter la réponse de MicDundee
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 18 août 2010 à 19:22
0
Utile
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
MicDundee 371 Messages postés mardi 1 juillet 2003Date d'inscription 1 avril 2018 Dernière intervention - 18 août 2010 à 19:45
0
Utile
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.