Bonjour,
J'ai une erreur stupide, je vais commencer par mettre le code en cause :
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.
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; }
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.
Partager