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

C# Discussion :

Replace qui ne remplace pas :s


Sujet :

C#

  1. #1
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut Replace qui ne remplace pas :s
    Bonjour,

    J'ai une erreur stupide, je vais commencer par mettre le code en cause :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private string ParseValue(string val, string header, MessageSIP message)
            {
                MatchCollection exps;
                foreach (string elt in val.Split(','))
                {
                    exps = Regex.Matches(elt, @"\[Last:[a-zA-Z]*\]");
                    foreach (Match exp in exps)
                    {
                        Console.WriteLine(exp.Value);
                        val.Replace(exp.Value, TransformVarInString(exp.Value, header, message));
                        Console.WriteLine(val);
                    }
                }
                return val;
            }
    Donc voila uen méthode d'une application console, son but est de me remplacer le "[Last:All]" de la chaine "[Last:All];tag=1" par une valeur prise dans un fichier.
    Val correspond à la chaine entière, et avec ma regexp je récupère bien mon "[Last:All]".
    TransformVarInString se charge de chercher dans un fichier la valeur qui correspond à "[Last:All]" en s'appuyant sur header message.

    Avec le débugueur je vois que val = "[Last:All];tag=1", exp.Value = "[Last:All]" , et que TransformVarInString me renvois bien la bonne valeur.
    Et pourtant, lorsque je passe à la ligne d'affichage sur la console, ou lorsque je regarde sur la console, val n'a pas changé

    J'avoue que je suis un peu surpris. Serait ce du au fait que je modifie la valeur d'une variable que je passe en paramètre ??? Ou Replace ne trouve pas le pattern "[Last:All]" dans val ?

    Merci par avance pour votre aide, moi je vais essayer avec regexp.replace.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  2. #2
    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
    Les string en .Net sont immuables, donc les méthodes associées renvoient une nouvelle chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = val.Replace(...);
    Pas de questions techniques par MP

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Heu ..................................
    Est ce que l'on peut faire comme si personne n'avait rien vu

    Ha la la j'ai oublié un truc aussi basique !!!! C'est pas bien !!! C'est parce que j'ai faim ça, je vais aller manger

    Merci de ta réponse.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut


    J'aurais certainement répondu un truc dans le genre si c t arrivé à quelqu'un d'autre
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

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

Discussions similaires

  1. [RegExp] replace qui ne remplace qu'une occurrence
    Par Oscar Hiboux dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 23/01/2011, 11h12
  2. Réponses: 20
    Dernier message: 06/05/2010, 12h32
  3. [1.x] Traduction i18n qui ne remplace pas les chaines de mon interface
    Par Adesfire dans le forum Symfony
    Réponses: 9
    Dernier message: 16/12/2009, 15h27
  4. Update et replace qui ne fonctionnent pas
    Par maysa dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/02/2008, 13h47
  5. String.replace qui ne remplace rien
    Par linar009 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/08/2006, 11h04

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