Wie erhält man die Länge von Enum und Item in MQL4/MQL5?

 

Wie erhält man die Länge von enum und item in MQL4/MQL5?

Zum Beispiel gibt es eine enum Definition:

enum ENUM_FRUIT {APPLE, BANANA, GRAPE};

Dann möchte ich sie in einer Schleife verwenden:

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

Wie kann ich diese Anforderung umsetzen?

Ich habe das Forum und die Codebasis durchsucht, aber keine Antwort erhalten.

:-(

 
Xiangdong Guo:

Wie bekomme ich die Länge von enum und item in MQL4/MQL5 ?

Ich habe das Forum und die Codebasis durchsucht, aber keine Antwort erhalten.

:-(

Was meinen Sie mit "Länge der Aufzählung"?

Können Sie ein Beispiel für die Verwendung zur Verfügung stellen, um Ihre Frage zu verstehen - wahrscheinlich ist enum nicht das, wonach Sie suchen?

 
Carl Schreiber:

Was meinen Sie mit "Länge von enum"?

Können Sie ein Beispiel für die Verwendung geben, um Ihre Frage zu verstehen - wahrscheinlich ist enum nicht das, wonach Sie suchen?

Ich habe meine Frage aktualisiert.
 
int ArrayCopyRates(double& dest_array[], string symbol=NULL, int timeframe=0)
Kopiert die Raten in das zweidimensionale Array aus dem Array RateInfo des Diagramms, wobei die zweite Dimension 6 Elemente hat:
0 - Zeit,
1 - offen,
2 - niedrig,
3 - hoch,
4 - Schließen,
5 - Lautstärke.
Hinweis: Gewöhnlich wird ein Array abgerufen, um große Datenblöcke an die DLL-Funktionen zu übergeben.
Parameter
dest_array[] - Verweis auf das zweidimensionale numerische Ziel-Array.
symbol - Symbolname, standardmäßig wird der Name des aktuellen Diagrammsymbols verwendet.
timeframe - Zeitrahmen, standardmäßig wird der aktuelle Chart-Zeitrahmen verwendet. Es kann ein beliebiger Wert aus der Aufzählung der Zeitrahmen sein.
Beispiel
double array1[][6];
ArrayCopyRates(array1, "EURUSD", PERIOD_H1);

Print("Aktueller Takt ",TimeToStr(array1[0][0]), "Open", array1[0][1]);

Aus MQL4, könnte nützlich sein

 
Maryann T Emmanuel:
int ArrayCopyRates(double& dest_array[], string symbol=NULL, int timeframe=0)
Kopiert die Raten in das zweidimensionale Array aus dem Array RateInfo des Diagramms, wobei die zweite Dimension 6 Elemente hat:
0 - Zeit,
1 - offen,
2 - niedrig,
3 - hoch,
4 - Schließen,
5 - Lautstärke.
Hinweis: Gewöhnlich wird ein Array abgerufen, um große Datenblöcke an die DLL-Funktionen zu übergeben.
Parameter
dest_array[] - Verweis auf das zweidimensionale numerische Ziel-Array.
symbol - Symbolname, standardmäßig wird der Name des aktuellen Diagrammsymbols verwendet.
timeframe - Zeitrahmen, standardmäßig wird der aktuelle Chart-Zeitrahmen verwendet. Es kann ein beliebiger Wert aus der Aufzählung der Zeitrahmen sein.
Beispiel
double array1[][6];
ArrayCopyRates(array1, "EURUSD", PERIOD_H1);

Print("Aktueller Takt ",TimeToStr(array1[0][0]), "Open", array1[0][1]);

Von MQL4, könnte nützlich sein

Danke, Maryann.

Aber es kann meine Frage nicht lösen.

 
Xiangdong Guo:

Danke, Maryann.

Aber das kann meine Frage nicht lösen.

Was meinen Sie mit "Länge der Aufzählung"?
 
Xiangdong Guo:

Wie erhält man die Länge von Enum und Item in MQL4/MQL5?

Haben Sie eine dynamische Aufzählung? Wenn ja, zeigen Sie bitte, wie Sie es ändern. Wenn nein - warum können Sie length_of_enum = 3 in Ihrem Code nicht setzen - dies ist eine statische unveränderbare Variable
 
Xiangdong Guo:

Wie erhält man die Länge von enum und item in MQL4/MQL5?

Zum Beispiel gibt es eine enum Definition:

Dann möchte ich sie in einer Schleife verwenden:

Wie kann ich diese Anforderung umsetzen?

Ich habe das Forum und die Codebasis durchsucht, aber keine Antwort erhalten.

:-(

Wenn Sie eine Liste durchlaufen wollen, verwenden Sie ein Array!

Eine Enum ist eine Art Variation von #define:

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

Enum ist sehr nützlich, z.B. für Eingabevariablen!

 
  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++;
   }
Das ist das Naheliegendste, was ich gefunden habe, wenn die Länge unbekannt ist.
 
Lorentzos Roussos:
Das ist das Naheliegendste, wenn die Länge unbekannt ist
Die Länge ist nie unbekannt, und dieses Thema ist nur auf ein schlechtes Design zurückzuführen.
 
Alain Verleyen:
Die Länge ist nie unbekannt, und dieses Thema ist nur auf ein schlechtes Design zurückzuführen.
Schlechtes Design von was
Grund der Beschwerde: