Import .csv dans Flash -> impossible de spliter

Résolu
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 28 juin 2011 à 11:10
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 28 juin 2011 à 14:45
Hello,

je travaille actuellement sur la récupération de données dans Flash pour un projet précis, la contrainte principale est que le fichier que je dois importer sera impérativement un .csv.
Je parviens sans souci à importer le .csv dans Flash, là où je coince c'est que je n'arrive pas à "spliter" les lignes -> en somme je n'arrive pas à éradiquer les retours à la ligne du .csv.
Lorsque je fais un test avec une chaîne de caractères créée dans Flash le split marche à merveille, mais sur le .csv impossible de virer les retours à la ligne -> le résultat c'est que cela fausse mon "champ de vision" par rapport au tri que j'ai à faire.
Si vous avez des suggestions quand à ce problème je suis tout ouï, voici mon code :
var csvLoader:URLLoader = new URLLoader();
csvLoader.dataFormat = URLLoaderDataFormat.TEXT;
csvLoader.load(new URLRequest("thedata.csv"));
csvLoader.addEventListener(Event.COMPLETE, CSVLoaded);

var str:String;
var TABgene:Array = new Array();
var i:Number;
var longueur:Number = 0;

function CSVLoaded(event:Event):void {
    str = csvLoader.data as String;
trace(str);
    TABgene = str.split("\n");
trace(TABgene.length);
    for (i = 0; i < TABgene.length; i++) {
longueur += 1;
        TABgene[i] = TABgene[i].split(';');
    }
}


Et voici le .csv :
code;gamme;sgamme;couleur;matiere;quantite;stock;dest;exp
55232B;toto;;877;AD;10000;;France;01/01/00
877341C;tutu;;877;AD;10000;;France;02/01/00
477322B;tata;;877;AD;10000;;France;03/01/00
633861C;tete;;877;AD;4000;;France;04/01/00
321322B;titi;;877;AD;4000;;France;05/01/00


Merci d'avance à ceux qui pourront me mettre sur la voie ,

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;



BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

4 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
28 juin 2011 à 14:45
Problème résolu :

il suffit en fait de choisir "CSV (Windows)(Séparateur point virgule)" au lieu de "CSV(Séparateur point virgule)" dans Excel lors de l'enregistrement du .csv pour que les retours chariot soient bien détectés dans Flash (et dans PHP accessoirement d'après le post que j'ai trouvé).

A plus ,

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
28 juin 2011 à 11:46
Bon, il s'avère que le problème vient surement du .csv -> lorsque j'ouvre le .csv et que je refais manuellement les retours à la ligne, ça fonctionne ensuite dans Flash. Donc je présume qu'il faut que je vois ça en amont à la création du .csv.

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
28 juin 2011 à 13:33
Bonjour,

Vérifie que tes codes php de retour à ligne sont pas entre apostrophes.
Car ils ne seront pas interprétés
Met les entre guillemets et ça devrais marché.

"\n"

Cordialement
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
28 juin 2011 à 14:12
Hello Aerolyte,

en fait je n'utilise pas PHP pour charger le .csv, à la base le .csv est un fichier excel .xls que j'enregistre sous .csv afin de le récupérer dans Flash. Le seul problème, et c'est ce que j'ai vérifié il y a 1 heure, c'est qu'une fois enregistré sous .csv et chargé dans Flash, le split sur "\n" ne fonctionne pas -> comme si les retours à la ligne dans mon .csv n'étaient pas reconnus... Alors que si j'ouvre mon .csv dans un éditeur de texte et que je refais manuellement les retours à la ligne ça marche. Bref, je ne sais pas encore comment régler le problème, mais le fait est que c'est dû soit à l'encodage de mon .csv (pourtant en UTF8), soit à une autre option lors de l'enregistrement de mon .csv.

Après si je ne trouve pas une solution "brute" dans Flash, j'essaierai de lire le fichier .csv via PHP puis envoyer les données à Flash, mais je trouverai cela dommage dans la mesure où je présume qu'il doit y avoir une astuce pour résoudre le problème sans passer par PHP.

Thanks ,

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Rejoignez-nous