Comment obtenir la longueur d'un enum et d'un item dans MQL4/MQL5 ?

Xiangdong Guo  

Comment obtenir la longueur d'un enum et d'un item en MQL4/MQL5 ?

Par exemple, il y a une définition d'un enum :

enum ENUM_FRUIT {APPLE, BANANA, GRAPE};

Ensuite, je veux l'utiliser dans une boucle :

for (int i = 0; i < length_of_enum; i++) {
  Print(EnumToString(get_enum_item(i)));
} 

Comment mettre en œuvre cette exigence ?

J'ai cherché dans le forum et dans la base de code, mais je n'ai pas obtenu de réponse.

:-(

Carl Schreiber  
Xiangdong Guo:

Comment obtenir la longueur d'un enum et d'un item en MQL4/MQL5 ?

J'ai cherché dans le forum et dans la base de code, mais je n'ai pas trouvé de réponse.

:-(

Que voulez-vous dire par "longueur de l'enum" ?

Pouvez-vous fournir un exemple d'utilisation pour comprendre votre question - probablement que l'enum n'est pas ce que vous recherchez ?

Xiangdong Guo  
Carl Schreiber:

Que voulez-vous dire par "longueur de l'enum" ?

Pouvez-vous fournir un exemple d'utilisation pour comprendre votre question - enum n'est probablement pas ce que vous recherchez ?

J'ai mis à jour ma question.
[Supprimé]  
int ArrayCopyRates(double& dest_array[], string symbol=NULL, int timeframe=0)
Copie les taux dans le tableau bidimensionnel à partir du tableau RateInfo, où la deuxième dimension a 6 éléments :
0 - temps,
1 - ouvert,
2 - bas,
3 - haut,
4 - fermeture,
5 - volume.
Note : Tableau habituellement récupéré utilisé pour passer de grands blocs de données aux fonctions de la DLL.
Paramètres
dest_array[] - Référence au tableau numérique bidimensionnel de destination.
symbol - Nom du symbole, par défaut, le nom du symbole du graphique actuel est utilisé.
timeframe - Cadre temporel, par défaut, le cadre temporel du graphique actuel est utilisé. Il peut s'agir de n'importe quelle valeur de l'énumération Timeframe.
Exemple
double array1[][6] ;
ArrayCopyRates(array1, "EURUSD", PERIOD_H1) ;

Print("Barre actuelle ",TimeToStr(array1[0][0]), "Open", array1[0][1]) ;

Depuis MQL4, cela pourrait être utile

Xiangdong Guo  
Maryann T Emmanuel:
int ArrayCopyRates(double& dest_array[], string symbol=NULL, int timeframe=0)
Copie les taux dans le tableau bidimensionnel à partir du tableau RateInfo, où la deuxième dimension a 6 éléments :
0 - temps,
1 - ouvert,
2 - bas,
3 - haut,
4 - fermeture,
5 - volume.
Note : Tableau habituellement récupéré utilisé pour passer de grands blocs de données aux fonctions de la DLL.
Paramètres
dest_array[] - Référence au tableau numérique bidimensionnel de destination.
symbol - Nom du symbole, par défaut, le nom du symbole du graphique actuel est utilisé.
timeframe - Cadre temporel, par défaut, le cadre temporel du graphique actuel est utilisé. Il peut s'agir de n'importe quelle valeur de l'énumération Timeframe.
Exemple
double array1[][6] ;
ArrayCopyRates(array1, "EURUSD", PERIOD_H1) ;

Print("Barre actuelle ",TimeToStr(array1[0][0]), "Open", array1[0][1]) ;

De MQL4 ,pourrait être utile

Merci, Maryann.

Mais cela ne peut pas résoudre ma question.

Marco vd Heijden  
Xiangdong Guo:

Merci, Maryann.

Mais ça ne peut pas résoudre ma question.

Que voulez-vous dire par "longueur de l'enum" ?
Alexander Puzanov  
Xiangdong Guo:

Comment obtenir la longueur d'un enum et d'un item dans MQL4/MQL5 ?

Avez-vous un enum dynamique ? Si oui, montrez comment vous le modifiez. Si non, pourquoi vous ne pouvez pas définir length_of_enum = 3 dans votre code - c'est une variable statique non modifiable.
Carl Schreiber  
Xiangdong Guo:

Comment obtenir la longueur d'un enum et d'un item en MQL4/MQL5 ?

Par exemple, il y a une définition d'un enum :

Ensuite, je veux l'utiliser dans une boucle :

Comment mettre en œuvre cette exigence ?

J'ai cherché dans le forum et dans la base de code, mais je n'ai pas obtenu de réponse.

:-(

Si vous voulez boucler une liste, utilisez un tableau !

Un enum est une sorte de variation de #define :

#define  APPLE 0   
#define  BANANA 1
#define GRAPE  2 
....

Enum est très utile, par exemple pour les variables d'entrée !

Lorentzos Roussos  
  enum Fruit {Apple,Banana,Heineken};
  int err=0;
  int scan=0;
  string item_name;

  while(err==0)
   {
   item_name=EnumToString(Fruit(scan));
   err=GetLastError();
   if(err==0) Alert(item_name);
   scan++;
   }
C'est ce que j'ai trouvé de plus proche si la longueur est inconnue.
Alain Verleyen  
Lorentzos Roussos:
C'est ce que j'ai trouvé de plus proche si la longueur est inconnue.
La longueur n'est jamais inconnue et ce sujet est juste le résultat d'une mauvaise conception.
Lorentzos Roussos  
Alain Verleyen:
La longueur n'est jamais inconnue et ce sujet est juste le résultat d'une mauvaise conception.
Mauvaise conception de quoi
Raison: