Est-ce que les enum peuvent m'aider?

Est-ce que les enum peuvent m'aider? - C++ - Programmation

Marsh Posté le 26-05-2003 à 16:38:18    

Code :
  1. bool __fastcall Configuration::SetCplement()
  2. {
  3. _di_IXMLDocument XMLConfig = LoadXMLDocument(PathOptions);
  4. if (!XMLConfig)
  5.         return false;
  6.        
  7. _di_IXMLNode PtrContenu = XMLConfig->DocumentElement;
  8. _di_IXMLNode PtrCplement = PtrContenu->ChildNodes->GetNode(2);
  9. _di_IXMLNode PtrTir = PtrCplement->ChildNodes->GetNode(0);
  10. _di_IXMLNode PtrRebond = PtrCplement->ChildNodes->GetNode(1);
  11. _di_IXMLNode PtrPossessions = PtrCplement->ChildNodes->GetNode(2);
  12. _di_IXMLNode PtrStrategies = PtrCplement->ChildNodes->GetNode(3);
  13. EndroitTir = StrToBool(PtrTir->GetAttribute("Actif" ));
  14. EndroitRebonds = StrToBool(PtrRebond->GetAttribute("Actif" ));
  15. AvecPossessions = StrToBool(PtrPossessions->GetAttribute("Actif" ));
  16. AvecStrategies = StrToBool(PtrStrategies->GetAttribute("Actif" ));
  17. return true;
  18. }


 
En utilisant enum, je peux pas réduire tout ça? Le problème, c'est que je sais pas les utiliser :fou:  
 
Genre avec une boucle for?


---------------
Another .Net Blog
Reply

Marsh Posté le 26-05-2003 à 16:38:18   

Reply

Marsh Posté le 26-05-2003 à 16:47:02    

tu veux dire reduire StrToBool(PtrStrategies->GetAttribute("Actif" ))?
 
oui
 

Code :
  1. enum Etat
  2. {
  3.   passif,
  4.   actif
  5. };


 

Reply

Marsh Posté le 26-05-2003 à 18:05:29    

Non, en fait je voudrais faire un truc du genre:
 

Code :
  1. bool __fastcall Configuration::SetCplement()
  2. {
  3. _di_IXMLDocument XMLConfig = LoadXMLDocument(PathOptions);
  4. if (!XMLConfig)
  5.        return false;
  6.        
  7. _di_IXMLNode PtrContenu = XMLConfig->DocumentElement;
  8. _di_IXMLNode PtrCplement = PtrContenu->ChildNodes->GetNode(2);
  9. int NbreElements = PtrCplement->ChildNodes->GetCount();
  10. enum Elements
  11. {
  12. EndroitTir,EndroitRebonds,AvecPossessions,AvecStrategies
  13. };
  14. for (int i=0; i < NbreElements; i++)
  15. {
  16.   _di_IXMLNode PtrElement = PtrCplement->ChildNodes->GetNode(i);
  17.   Elements[i] = StrToBool(PtrElement->GetAttribute("Actif" ));
  18. }
  19. return true;
  20. }

 
 
Enfin, tu vois, stocker le nom des variables à modifier dans une liste, un tableau, je sais pas ce qui peut aller, puis récupérer la modification et la lui affecter.
 
Parce que là, ça va j'ai 4 variables.
 
Mais si plus tard j'en ai 25, ça permettra de réduire beaucoup!
 
Merci d'avance


---------------
Another .Net Blog
Reply

Marsh Posté le 26-05-2003 à 18:08:31    

ok, donc ç'est pas de enums... rien à voir

Reply

Marsh Posté le 26-05-2003 à 18:13:48    

cela dit: tu peux te servir d'une map genre valeurs["rebond"]=truc
 
ou utiliser une enum pour stocker des indice
 
enum{a, b};
 
tableau[2];
 
tableau[a]

Reply

Marsh Posté le 26-05-2003 à 19:38:11    

++Taz a écrit :

cela dit: tu peux te servir d'une map genre valeurs["rebond"]=truc
 
ou utiliser une enum pour stocker des indice
 
enum{a, b};
 
tableau[2];
 
tableau[a]


 
Alors une map, je sais pas ce que c'est, et je sais pas utiliser les enum...
 
En plus, je vois pas trop bien comment tu me conseilles de procéder...


---------------
Another .Net Blog
Reply

Marsh Posté le 26-05-2003 à 19:44:13    

ben des mes exemples, tu préfères quelle utilisation?

Reply

Marsh Posté le 26-05-2003 à 21:25:25    

le plus simple et le plus pratique à modifier...
 
Alors je te laisse me conseiller :D


---------------
Another .Net Blog
Reply

Marsh Posté le 27-05-2003 à 01:45:11    

ben, non, c'est toi qui me dit, je connais pas ton usage alors...

Reply

Marsh Posté le 27-05-2003 à 09:49:27    

Ben mon usage, tu l'as déjà un peu dans le code au dessus: établir une liste des paramètres à récupérer, et dans une boucle for() aller checher les infos du XML et les attribuer à chaque variable de la liste, chacune leur tour...
 
C'est ce qui me parait le plus simple...
 
Un paramètre à ajouter? On le met à la suite de la liste, et on a que ça à modifier...
 
Voilà, j'espère avoir été clair!


---------------
Another .Net Blog
Reply

Marsh Posté le 27-05-2003 à 09:49:27   

Reply

Marsh Posté le 28-05-2003 à 13:06:59    

Taz??


---------------
Another .Net Blog
Reply

Marsh Posté le 28-05-2003 à 13:11:18    

mais tu veux les manipuler comment? tu peux pas combiner une boucle for,c'est à dire des indices et à la fois des variables avec un nom personnalisé.
 
et puis précise aussi le type des tes variables

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed