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

 

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.

:-(

 
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 ?

 
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.
 
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

 
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.

 
Xiangdong Guo:

Merci, Maryann.

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

Que voulez-vous dire par "longueur de l'enum" ?
 
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.
 
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 !

 
  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.
 
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.
 
Alain Verleyen:
La longueur n'est jamais inconnue et ce sujet est juste le résultat d'une mauvaise conception.
Mauvaise conception de quoi