Bonjours à tous, :odile:
j'ai un petit problème de programmation en Coffee, et pas moyen de trouver la solution.
Ca semble pourtant évident. :coup:
J'ai créé une expression coffe qui marche très bien quand on l'applique sur un objet.
Mais le but final est de pouvoir l'appliquer sur une centaine d'objet.
Le problème c'est le nom des variables qui est le même pour chaque objet.
L'expression possède une ligne de code qui donne automatiquement un nom explicite à l'objet sur lequel on la
dépose. Ainsi, je me retrouve automatiquement avec des objets qui se nomment
"objet1", "objet2", "objet3", "objet4" etc...
Avec "strmid" je récupère facilement le numéro de l'objet.
Le problème est que je ne parviens pas à créer pour l'"objet1" l a variable "variable1",
pour l'"objet2" la variable "variable2" etc... automatiquement.
Je voudrais éviter d'avoir à déclarer à l'avance 200 variables avec un code du type:
var "variable"+"numéro_de_mon_objet" = ma formule ;
En résumé:
"V"+"1" me donne bien "V1" et var V1 = 2; fonctionne parfaitement,
mais comment faire ( var "V"+"1"=2; ) ?
Merci d'avance. :poucehaut:
SMC fan.
essaye avec des tableaux ayant comme clés les id des objets, la creation dynamique de noms de variables je connais aucun langage qui gere ca (e,fin...si y a php en partie si on utilise l'objet, mais c'est pas très propre)
après en coffee je sais pas la syntaxe exacte, mais vu que ca ressemble au c++ tu devrais te retrouver avec quelque chose comme :
var1[mon_id] = valeur_de_la_var1;
etc etc
après, tu peux faire encore plus evoluer, en creant des structures du type (syntaxe trèèèès libre)
struc obj {
var1;
var2;
....
};
et dans ton code tu pourrais faire :
mesObjs[mon_id].var1 = ...
etc
après, faut voir l'initialisation et tout le reste, pour les structures au pire si ca existe pas en l'etat en coffee tu peux toujours faire une classe, c'est juste sortir le marteau pilon pour ecraser la mouche mais c'est pas bien grave, et c'est plus extensible au cas où
bon courage !
Le rendu, c'est juste de l'intégration numérique sur un espââââââce de dimension infinie...trivial quoi
Je ne sais pas si j’ai bien compris ton problème.
Si tu a bien récupéré ta chaîne de caractères "variableX", qui définie ta variable* X ,
Il te suffit pour incrémenter le nom de :
Code:var nom* = "objet" + tostring ( evaluate("variableX")* + 1 ) ;
A+
si j'ai bien compris, il voudrait creer des variables dont le nom est var1, var2, varn , n etant le nombre d'objets qu'il a...
Le rendu, c'est juste de l'intégration numérique sur un espââââââce de dimension infinie...trivial quoi
Merci pour ta réponse MAJOUL, si tu n'as pas bien compris c'est certainement que je n'ai pas été clair. :oops:Envoyé par MAJOUL
Je programme un peu, mais je ne maîtrise pas encore tous les termes techniques. :oops:
Ce n'est pas pour incrémenter le contenu d'une variable de type "string",
mais "déclarer" une variable avec un nom de variable différent (dépendant de l'objet).
Exactement.Envoyé par tarlack
Il me semble que je faisait ça sans problème en Action script, c'est pourquoi je pensais qu'il y avait une fonction toute simple.Envoyé par tarlack
Ta solution me semble une très bonne piste. :poucehaut:
:odile:
SMC fan.
Ca marche au poil ta solution tarlack. :prie: :love:
En coffee:
Ma variable garde ainsi un nom reconnaissable et selon l'objet, je pioche dans la ligneCode:var Nobjet=int(evaluate(strmid(op->GetName(),8,1))); var ma_variable= new(array,100); ma_variable[Nobjet]=valeur ;
correspondante du tableau.
Encore une fois merci. :love:
SMC fan.