Remplacement en cascade

Résolu
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - 16 juin 2009 à 13:34
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - 16 juin 2009 à 16:29
Salut tout le monde...
Euh, voilà, j'aimerais... hm... remplacer plusieurs caractères dans un champ texte, où un xml est chargé... le but étant de réécrire le xml avec une donnée "modifiée"... càd, un nombre entre 1 et 90.

J'utilise déjà ça dans un bouton :
     var chaine:String = go.text;
     chaine = chaine.split("a").join("e");
     go.text = chaine;

Et ça le fait. mais ce qu'il faut c'est que je supprime un truc du genre : <Liste List_Number="9">

Donc j'avais mis ça pour le virer, avec un "9"... :
     var chaine:String = go.text;
     chaine = chaine.split("<Liste List_Number=" + chr(34) + "9" + chr(34) + ">").join("");
     go.text = chaine;

     (le char(34) c'est pour les guillemets)

Seulement ça peut-être inférieur ou sup' à "9", ...

Donc, comment éviter ça :

     var chaine:String = go.text;
     chaine = chaine.split("<Liste List_Number=" + chr(34) + "9" + chr(34) + ">").join("");
     chaine = chaine.split("<Liste List_Number=" + chr(34) + "10" + chr(34) + ">").join("");

     chaine = chaine.split("<Liste List_Number=" + chr(34) + "11" + chr(34) + ">").join("");

     chaine = chaine.split("<Liste List_Number=" + chr(34) + "12" + chr(34) + ">").join("");

     chaine = chaine.split("<Liste List_Number=" + chr(34) + "13" + chr(34) + ">").join("");

     chaine = chaine.split("<Liste List_Number=" + chr(34) + "1"4 + chr(34) + ">").join("");

     chaine = chaine.split("<Liste List_Number=" + chr(34) + "15" + chr(34) + ">").join("");
etc...
     go.text = chaine;

?... je sèche... snif. Sachant que ça ne pourras pas dépasser 90 à mon avis...

Merci de vos lumières.

2 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
16 juin 2009 à 16:03
Bonjour,

une simple boucle devrait faire l'affaire

var chaine:String = go.text;
for (var i:Number=0;i<91;i++){
    chaine = chaine.split("<Liste List_Number=" + chr(34) + i+ chr(34) + ">").join("");
}
go.text = chaine;

@+
3
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
16 juin 2009 à 16:29
Merci bien, ça marche pile poil !!! :D
0
Rejoignez-nous