
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hier ist ein Beispiel für das Schreiben und Lesen eines Arrays
Führen Sie es zweimal im Debug-Modus aus und sehen Sie, wie lange es dauert, das Array zu schreiben und zu lesen. Der erste Durchlauf schreibt das Array in eine Datei, der zweite liest es und beginnt mit dem Ausdruck von Daten aus dem Array. Dann finden Sie heraus, ob IS_DEBUG_MODE entfernt und IsOptimization() in die Bedingung eingefügt werden soll.
Es gibt eine Funktion, so etwas wie FileWriteInteger(). Die Variable muss am Anfang der Datei stehen, nach dem Lesen bewegt sich der Zeiger an ihr Ende, d.h. an den Anfang des Arrays, nach dem Lesen des Arrays steht der Zeiger vor der nächsten Variablen...
Ein Artikel über die Arbeit mit Dateien wird demnächst veröffentlicht.
Ich wollte Ihnen schreiben, dass es keinen Artikel über Dateivorgänge gibt. Sie machen sie informativ und anschaulich, ich werde sie auf jeden Fall lesen, wenn sie erscheinen.
Versucht , ein Array auf globaler Ebene zu deklarieren (mql4-Code)
datetime T[];
Füllen Sie es in das Feld
Wenn es beim Start nicht gesetzt ist, wird das Datum 1971 gedruckt, d.h. das Feld ist leer.
Wenn ich das Feld am Anfang fülle, erscheinen die Werte. Vielleicht liegt es daran, dass das Array zu einem bestimmten Zeitpunkt neu initialisiert wird, aber ohne dieses Array lässt sich der Code nicht kompilieren?
Das Feld verschwindet. Was mache ich falsch?
Versucht , ein Array auf globaler Ebene zu deklarieren (mql4-Code)
Füllen Sie es in das Feld
Wenn es beim Start nicht gesetzt ist, wird das Datum 1971 gedruckt, d.h. das Feld ist leer.
Wenn ich das Feld am Anfang fülle, erscheinen die Werte. Vielleicht liegt es daran, dass das Array zu einem bestimmten Zeitpunkt neu initialisiert wird, aber ohne dieses Array lässt sich der Code nicht kompilieren?
Das Feld verschwindet. Was mache ich falsch?
Schauen Sie, was der Compiler sagt.
Mit einer solchen einfachen Bewegung haben Sie ein lokales Array T definiert, das beim Verlassen von OnInit verschwindet...
überprüfen Sie die Warnung, die der Compiler erzeugt.
Mit einer solchen einfachen Bewegung haben Sie ein lokales Array T definiert, das verloren geht, wenn Sie OnInit beenden...
Es heißt, dass es bereits eine globale Erklärung gibt)
Deklaration von 'T' verdeckt globale Deklaration in Zeile 40
Aber wie macht man es richtig? Ich hatte noch nie ein Array mit geschweiften Klammern deklariert. Ich habe sie mit Null initialisiert und ihre Größe festgelegt und sie dann mit der Schleife gefüllt. Gibt es eine andere Möglichkeit, dies zu tun?
Wenn ich die Datetime in der Inite lösche, kompiliert der Code nicht, sondern schreibt zwei Fehler:
'{' - Ausdruck erwartet
=' - Verwendung einer unzulässigen Operation
Es heißt, dass es bereits eine globale Erklärung gibt)
Deklaration von 'T' verdeckt globale Deklaration in Zeile 40
Aber wie macht man es richtig? Ich hatte noch nie ein Array mit geschweiften Klammern deklariert. Ich habe sie mit Null initialisiert und ihre Größe festgelegt und sie dann mit der Schleife gefüllt. Gibt es eine andere Möglichkeit, dies zu tun?
Wenn ich die Datetime in der Inite lösche, kompiliert der Code nicht, sondern schreibt zwei Fehler:
'{' - Ausdruck erwartet
=' - Verwendung einer unzulässigen Operation
Die Array-Deklaration zusammen mit der Initialisierung der Konstanten könnte (und sollte) auf der globalen Ebene erfolgen.
Es heißt, dass es bereits eine globale Erklärung gibt)
Deklaration von 'T' verdeckt globale Deklaration in Zeile 40
Aber wie macht man es richtig? Ich hatte noch nie ein Array mit geschweiften Klammern deklariert. Ich habe sie mit Null initialisiert und ihre Größe festgelegt und sie dann mit der Schleife gefüllt. Gibt es eine andere Möglichkeit, dies zu tun?
Wenn ich die Datetime in der Inite lösche, kompiliert der Code nicht, sondern schreibt zwei Fehler:
'{' - Ausdruck erwartet
=' - Verwendung einer unzulässigen Operation
Die Array-Deklaration zusammen mit der Initialisierung der Konstanten hätte auf globaler Ebene erfolgen können (und sollen).
Ja, ich habe es ausprobiert und es funktioniert. Und das geht nicht ohne globale Ebene, ich habe es nur gemacht, um den Rechenaufwand zu reduzieren, das Array einmal im Init zu füllen und dann die Arraywerte zu verwenden?
Obwohl die Variablen auf der globalen Ebene logischerweise immer konstant sind, so dass die Berechnung einmal zu Beginn des Programms durchgeführt wird?
Ja, ich habe es ausprobiert und es funktioniert. Und das geht nicht ohne globale Ebene, ich habe es nur gemacht, um den Rechenaufwand zu reduzieren, das Array einmal im Init zu füllen und dann die Arraywerte zu verwenden?
Obwohl die Variablen auf der globalen Ebene logischerweise immer konstant sind, wird die Berechnung also einmal zu Beginn des Programms durchgeführt?
Es heißt, dass es bereits eine globale Erklärung gibt)
Deklaration von 'T' verdeckt globale Deklaration in Zeile 40
Aber wie macht man es richtig? Ich hatte noch nie ein Array mit geschweiften Klammern deklariert. Ich habe sie mit Null initialisiert und ihre Größe festgelegt und sie dann mit der Schleife gefüllt. Gibt es eine andere Möglichkeit, dies zu tun?
Wenn ich die Datetime in der Inite lösche, kompiliert der Code nicht, sondern schreibt zwei Fehler:
'{' - Ausdruck erwartet
=' - Verwendung einer unzulässigen Operation