IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Probleme fonction Replace


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Points : 47
    Points
    47
    Par défaut Probleme fonction Replace
    Bonjour,
    Voilà j'utilise la fonction replace pour changer dans un fichier certaines chaines par d'autres. Mon probleme c'est qu'il tient compte des majuscules et minuscules. Si je veux remplacer toto par tata et que dans mon texte j'ai un TOTO, il n'est pas remplacé.

    Je ne veux pas non plus passer tout mon texte en minuscule ou majuscule avec ToUpper ou ToLower, juste les chaines demandées.

    Merci pour vos futures réponses

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,

    Si tu utilise les deux méthodes en cascade, autrement dit MyOutputString = MyInputString.ToUpper.Replace(), tu ne modifie pas la chaine originale mais tu es sur de prendre en compte les majuscules et minuscules.

    Enfin, je crois...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Non en cascade tu modifie quand meme ta chaine, le remplacement marche mais la chaine du replace est mise en majuscule ou minuscule entierement...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    OK alors une autre solution consisterait à gérer en boucle un IndexOf avec en paramètre une variable qui contient ta chaine mise au préalable en majuscule.

    Puis si la chaine est trouvée (<> -1), tu régénère ta chaine via un substring (en exploitant la longueur connue de la chaine à remplacer, ici 4).

  5. #5
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Le mieux serais peut être RegEx.Replace ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    La fonction regex me fait la même chose que l'utilisation du replace en direct.
    Il ne s'occupe que des textes ayant la même caste sauf erreur d'utilisation de ma part:

    texte = My.Computer.FileSystem.ReadAllText(fichier_source)
    Dim my_regex As New System.Text.RegularExpressions.Rege(tableau_source(index))
    texte = my_regex.Replace(texte, tableau_cible(index) & "_")

    Je vais essayer avec le substring et la boucle
    Si vous avez d'autres idees ...

  7. #7
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par touf26 Voir le message
    La fonction regex me fait la même chose que l'utilisation du replace en direct.
    Pas si tu utilises une des surcharges de la méthode Regex.Replace utilisant RegexOptions. Tu pourras faire un remplacement sans tenir compte de la casse à ce moment.

  8. #8
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Avec regex on peux aussi ignorer la case

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Define a case-insensitive regular expression for repeated words.
             Dim rxInsensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
                   RegexOptions.Compiled Or RegexOptions.IgnoreCase)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Merci à tous, c'est bon avec regex, je n'avais pas vu le ignore casse.
    Encore Merci

  10. #10
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Regex est des fois un peux chiant a utiliser mais c'est ce qu'il y a de mieux pour le traitement de texte ravi de t'avoir aider !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Probleme Fonction Replace
    Par luko6 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/12/2012, 09h15
  2. Probleme avec la fonction replace et convert datetime
    Par gazzall dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/04/2007, 09h07
  3. [ODBC] Fonction Replace en ODBC
    Par Alexandre T dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2007, 11h02
  4. probleme fonction replace
    Par silver_78 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/07/2006, 11h07
  5. Javascript : probleme fonction replace
    Par chico_du_33 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/03/2006, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo