cs_alise
Messages postés2203Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention26 janvier 2010
-
4 oct. 2006 à 11:08
cs_alise
Messages postés2203Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention26 janvier 2010
-
7 oct. 2006 à 15:54
J'aimerais récupérer une valeur numérique contenue dans un .txt et de m'en servir pour faire une opération. (je sais que cela se fait d'un xml, mais pour des raisons pratiques de MAJ, il me faut un txt). Actuellement undefined (NaN) !!
Quelqu'un a-t'il une idée ? Comment convertir une variable importée d'un fichier texte en number ?
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 4 oct. 2006 à 16:12
Hello,
je suis étonné que la solution du number(string) ne fonctionne pas.
Es-tu sure que flash à bien chargé la variable du fichier .txt avant d'effectué une opération dessus ?.
Comme les opérations de chargement de flash sont asynchrone je me pose la question.
Peut-être essayes-tu d'eefectué une opération sus une variable pas encore en mémoire.
Jo
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_alise
Messages postés2203Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention26 janvier 2010 4 oct. 2006 à 16:49
[auteurdetail.aspx?ID=19113 shubenka]
je te prépares ça
[auteurdetail.aspx?ID=65895 Girou] regardes aussi les fichiers tu verras qu"après la conversion le champs affiche NaN, alors
que j'ai besoin de récupérer un chiffre pour effectuer ensuite un calcul.
Mais peut-être est-ce aussi mal formulé du coté code.
shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 4 oct. 2006 à 22:46
Alors j'ai trouver pourquoi
deja il faut attendre que flash est fini de charger les variables avant de les utiliser ce sui donne un truc comme ca
loadVariablesNum("vari.txt", 0);
function checkParamsLoaded() {
if (_root.dm1 == undefined) {
trace("not yet.");
} else {
clearInterval(param_interval);
afterLoad();
}
}
var param_interval:Number = setInterval(checkParamsLoaded, 100);
function afterLoad(){
r1=Number(dm1)-Number(dm2);
}
et ensuite ton txt doit resembler a ca dm1=10&dm2=15&dm3=20
sinon il prend les retour a la ligne et ca fou la merde pour la convertion
ou alors mais c'est plus chiant tu vire les retour chariot
en faisant
dm1= Number(substring(dm1,0,dm1.length-2));
j'ai pas trouver mieux
cs_alise
Messages postés2203Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention26 janvier 2010 5 oct. 2006 à 09:13
Merci shubenka,
tu m'as déjà bien éclairé sur une grande partie du problème, je récupère bien un nombre
reste maintenant le prob des variables du txt, j'en ai 365 (de dm=160 à dm365 =160) donc pas très pratique
de les mettre bout à bout.
shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 5 oct. 2006 à 12:04
dans ce cas la automatise le 2iéme parsage indiqué
for(i=1;i<366;i++){
var = "dm"+i;
_root[var]= Number(substring(_root[var],0,_root[var].length-2));
}
Pour la petite explication ce que tu optient dans dm1 par exemple c'est la chaine de caractére tonNombre\t\r (\t\r étant le retour chariot et correspondant a 2 caractéres) donc il faut les enlever pour que la convertion marche.
ps: pas sur à 100% que ce soit \t\r mais en tout cas il a 2 caractéres à virer
<hr />http://www.carton.c.la
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 5 oct. 2006 à 14:56
Hello,
dans ton cas, vu le nombre conséquent de variables, n'aurais-tu pas interet a fonctionner avec un fichier XML.
Ou bien encore avoir une seule variable (texte) à charger et ensuite tu traites le tout dans un tableau.
fichier .txt
&mesValeurs=10_15_20_...
ensuite, dès que tu as récupéré ta variable dans Flash, tu 'exploses' ta chaine de caractère dans un tableau.
var dm:Array=new Array()
dm=mesValeurs.split("_");
tu récupèreras alors un tableau
dm[0]=10 dm[1]=15 dm[2]=20 etc...
Personnellement, je trouve assez facile et utile de travailler avec des tableaux (facilité de retrouver une valeur, plusieurs opérations possible sur un tableau genre tri,...)
Tout dépend bien sur de comment ou d'où proviennent les données du fichier txt de base.
cs_alise
Messages postés2203Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention26 janvier 2010 5 oct. 2006 à 19:16
Bonsoir Girou, je vais aussi tester ta suggestion, je sais faire tout ça avec du xml (ça m'aurait simpliflé la tâche) ou un bdd, mais je ne peux pas dans le cas présent, il me faut absolumment un fichier .txt, car c'est le client qui le génère et xml, ça ne lui va pas.
En clair la paersonne gérant ce truc devrait avoir un fichier hyper simple et facile à mettre à jour, style :
dm1=120
&dm2=78
&dm3=148
etc, etc (et disposé comme ça), tous les jours, ces données sont mises à jour (en dégressif) et je doit récupérer le résultat dans Flash pour lafficher d'une part et m'en servir pour faire un calcul dégressif d'autre part !
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 5 oct. 2006 à 21:20
Au passage,
j'ai déjà testé un fichier excel qui, via une macro (le VBA, c'est sympa !) génère un fichier xml (que je récupère dans flash)
Dans ton cas, le client aurait un fichier Excel où il lui suffit de mettre à jour ses valeurs, de cliquez sur un bouton (gros et gras q'il puisse pas le louper) et hop, le nouveau fichier n'a plus qu'a être uploadé.
Jamais testé mais via flash 8 je pense qu'il y a une fonction d'upload.
comme je le disait tout dépend de comment le fichier est généré...
cs_alise
Messages postés2203Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention26 janvier 2010 7 oct. 2006 à 15:54
Merci à vous Girou et shubenka, je vais essayer vos méthodes et vous tiens au courant.
Par contre Girou, c'est intéressant ta soluce via un fichier excel, tu fais ça comment ? Là je suis vraiment néophite.
Flash8, n'a pas de fonction intégrée d'upload, mais ce n'est pas un problème pour le client