Bonjour, j'essaye d'utiliser la fonction split pour découper un texte injecté dans mon flash.
Mes contraintes : utiliser actionscript2 et exporter en flash player 7, et surtout, je n'ai pas de VRAIE formation de programmeur, juste une formation de 3 jours il y a 10 ans (et ensuite 10 ans de pratique hasardeuse sur le tas).
Donc, je veux découper le texte complet en plusieurs morceaux de texte (texte normal et texte spécial), en utilisant des balises d'entrée et de sortie. Ici, les balises sont $ en entrée de texte spécial et § en sortie de texte spécial.
Voici le type de prog que j'ai tenté d'utiliser (la fonction champ_defini est une fonction que le formateur m'avait créée et qui sert à définir si un champ est vide ou pas) :
Mon problème avec cette prog ?
Si j'envoie le texte
bonjour, $voici§ le texte $à découper§ selon les balises.
J'aimerais obtenir à la fin
TextNormal1 = bonjour,
TexteSuite1 = voici§ le texte $à découper§ selon les balises
TextSpecial1 = voici
TexteSuite2 = le texte $à découper§ selon les balises
TextNormal2 = le texte
TexteSuite3 = $à découper§ selon les balises
TexteSpecial2 = à découper
TexteNormal3 = selon les balises
Sauf que ma méthode ne marche pas bien.
En effet au lieu de
TexteSuite1 = voici§ le texte $à découper§ selon les balises
J'obtiens
TexteSuite1 = voici§ le texte
car la méthode split que j'utilise semble agir sur TOUTES les balises $ rencontrées, et pas uniquement sur la première.
y-aurait-il une façon d'écrire mon code pour qu'il prenne "tout le contenu de la variable compris entre la première balise rencontrée et la fin de la variable" et non pas "tout le texte de la variable compris entre la première et la deuxième balise".
Je soupçonne qqchose de très simple, probablement remplacer mon [1] par autre chose, mais déjà ce [1] ce n'est pas de moi, c'est une prog que j'avais trouvée ailleurs.
Mes contraintes : utiliser actionscript2 et exporter en flash player 7, et surtout, je n'ai pas de VRAIE formation de programmeur, juste une formation de 3 jours il y a 10 ans (et ensuite 10 ans de pratique hasardeuse sur le tas).
Donc, je veux découper le texte complet en plusieurs morceaux de texte (texte normal et texte spécial), en utilisant des balises d'entrée et de sortie. Ici, les balises sont $ en entrée de texte spécial et § en sortie de texte spécial.
Voici le type de prog que j'ai tenté d'utiliser (la fonction champ_defini est une fonction que le formateur m'avait créée et qui sert à définir si un champ est vide ou pas) :
Bloc de code:
// découper l'ensemble, en fonction des balises, en variables "normales" et "spéciales"
if(champ_defini("TexteBalise"))
{
TexteNormal1 = TexteBalise.split('$')[0]
TexteSuite1 = TexteBalise.split('$')[1]
if(champ_defini("TexteSuite1"))
{
TexteSpecial1 = TexteSuite1.split('§')[0]
TexteSuite2 = TexteSuite1.split('§')[1]
if(champ_defini("TexteSuite2"))
{
TexteNormal2 = TexteSuite2.split('$')[0]
TexteSuite3 = TexteSuite2.split('$')[1]
if(champ_defini("TexteSuite3"))
{
TexteSpecial2 = TexteSuite3.split('§')[0]
TexteNormal3 = TexteSuite3.split('§')[1]
}
}
}
}
Mon problème avec cette prog ?
Si j'envoie le texte
bonjour, $voici§ le texte $à découper§ selon les balises.
J'aimerais obtenir à la fin
TextNormal1 = bonjour,
TexteSuite1 = voici§ le texte $à découper§ selon les balises
TextSpecial1 = voici
TexteSuite2 = le texte $à découper§ selon les balises
TextNormal2 = le texte
TexteSuite3 = $à découper§ selon les balises
TexteSpecial2 = à découper
TexteNormal3 = selon les balises
Sauf que ma méthode ne marche pas bien.
En effet au lieu de
TexteSuite1 = voici§ le texte $à découper§ selon les balises
J'obtiens
TexteSuite1 = voici§ le texte
car la méthode split que j'utilise semble agir sur TOUTES les balises $ rencontrées, et pas uniquement sur la première.
y-aurait-il une façon d'écrire mon code pour qu'il prenne "tout le contenu de la variable compris entre la première balise rencontrée et la fin de la variable" et non pas "tout le texte de la variable compris entre la première et la deuxième balise".
Je soupçonne qqchose de très simple, probablement remplacer mon [1] par autre chose, mais déjà ce [1] ce n'est pas de moi, c'est une prog que j'avais trouvée ailleurs.
Dernière édition: