Voila la fonction que j'ai développer pour le moment, il y a surement plus léger et plus dynamique mais ça marche dans le cas dont j'en ai besoin

.
Elle convertir donc une chaine du type suivant en tableau :
string = '[6,5,02],[4,3,20],[2,1,13]'; (sans les crochets externe donc)
3 petits inconvénients :

-Elle ne gère que les tableaux de chiffres ou de strings d'une meme taille
-Elle ne gère que les tableaux sous cette forme (donc X tableau imbriqué en 1);
-Les 'sous-tableaux' doivent avoir la même structure (dans l'exemple les nombre sont constitué de 1, 1 puis 2 chiffres d'où le 02 dans le 1er tableau);
Les chaines suivantes peuvent etre donc convertie :
- '[6,5,02],[4,3,20],[2,1,13]'
- '['a','b','c'],['d','e','f'],['g','h','i']'
- '['lol',5,02],['abc',3,20],['cba',1,13]'
Par contre celle ci ne pourra pas l'être :
'[6,54,02],[40,3,20],[2,1,13]' (La structure des sous tableau est différente)
=>'[06,54,02],[40,03,20],[2,1,13]'(Il faut donc rajouter des 0 pour que ça marche)
Voici la fonction :
function StrToArray(str:String):Array
{
var arr:Array;
taille = str.split('[').length - 1;
sous_taille = (str.length - (taille-1)) / taille;
var sous_chaine:Array = Array(taille - 1);
i = 0;
while (i <= taille)
{
if (str.substr((i * sous_taille + i), sous_taille) != "")
{
sous_chaine[i] = str.substr((i * sous_taille + i + 1), sous_taille - 2);
}
i++;
}
i = 0;
var sous_chaine_mod:Array = Array(sous_chaine.length);
while (i < sous_chaine.length)
{
temp_str = sous_chaine[i];
sous_chaine_mod[i] = temp_str.split(',');
i++;
}
arr = sous_chaine_mod;
return arr;
}
Si vous avez des idées d'optimisation je suis preneur
