Fehler, Irrtümer, Fragen - Seite 3128

 
Nikolai Semko # :

Ah, funktioniert dieses Thema im Debugger nicht mehr?
Traurig :(( War sehr nützlich für meine Arbeit


Vor mehr als 4 Monaten gemeldet. Das interessiert niemanden.

Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях
Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях
  • 2021.08.18
  • www.mql5.com
В пятницу 18 июня 2021 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Vladimir Pastushak #:
Finanzen: Ein nicht-finanzielles Thema

Offen,Begonnen: 2021.09.02 10:45,#3182963

Hallo! Ich habe das Ticket aktiviert, da die Schaltfläche "Neuer Antrag" nicht funktioniert.

Grund für die Anfrage: Die Beschreibung der letzten 4 Sprachen, Koreanisch, Italienisch, Französisch, Türkisch ist nicht in den Signalen gespeichert.

Anheben, da es nicht funktioniert.

 
Ich brauche ein Skript, das das Skript/die Dienstleistung auf allen laufenden MT4/5-Terminals ausführt. Können Sie PostMessage-Parameter vorschlagen.
 
fxsaber #:
Ich benötige ein Skript, das das Skript/die Dienstleistung auf allen laufenden MT4/5-Terminals ausführt. Können Sie die PostMessage-Parameter vorschlagen.

Ich würde einen Dienst erstellen, der darauf wartet, dass die Befehlsdatei im gemeinsamen Ordner erscheint. Nun, und ein Skript zur Erstellung eines solchen Befehls.

 
Andrey Khatimlianskii #:

Ich würde einen Dienst erstellen, der darauf wartet, dass die Befehlsdatei im gemeinsamen Ordner erscheint. Nun, und ein Skript zur Erstellung eines solchen Befehls.

Sehr krüppelhaft, und MT4 ist immer noch aktuell.

 

Ich wage nicht, es einen Fehler zu nennen. Ich möchte nur sagen, dass mir eine Besonderheit der if-Anweisung aufgefallen ist. Ich vermute, dass dies auch auf andere Sprachen zutrifft.

if(a && Array[over_index]>val) {...}

Wenn sich a als wahr herausstellt, überspringt die Prüfung Array[over_index] und hier beginnt das Terminal durch den Teil'array out of range' abzustürzen, was absolut fair ist. Aber wenn sich a als falsch herausstellt, prüft das Terminal nicht auf die Bedingung Array[over_index] und damit auf die Redundanz des Indexes, und if wird weiter überspringen und der Programmierer wird nicht wissen, dass es ein Array mit einem nicht existierenden Index in seinem Programm gibt... oder vielmehr eine bestehende, aber überflüssige.

Vielleicht sollte es einen Fix dafür geben, so dass die Prüfung auf "array out of range" bis zum Ende der if-Schleife durchgeführt wird und die gleiche Meldung ausgegeben wird? Oder wird sie die Geschwindigkeit des Bedieners erheblich verringern?


 
x572intraday #:

Ich wage nicht, es einen Fehler zu nennen. Ich möchte nur sagen, dass mir eine Besonderheit der if-Anweisung aufgefallen ist. Ich vermute, dass dies auch für andere Sprachen gilt.

Wenn sich a als wahr herausstellt, überspringt die Prüfung Array[over_index], und hier beginnt der Compiler mit dem Teil"Array out of range", der durchaus wahr ist, abzustürzen. Aber wenn sich a als falsch herausstellt, prüft das Terminal nicht auf die Array[over_index]-Bedingung und damit auf Index-Redundanz, und if überspringt weiter und der Programmierer weiß nicht, dass es ein Array mit einem nicht existierenden Index in seinem Programm gibt... oder vielmehr eine bestehende, aber überflüssige.

Vielleicht sollte es einen Fix dafür geben, so dass die Prüfung auf "array out of range" bis zum Ende der if-Schleife durchgeführt wird und die gleiche Meldung ausgegeben wird? Oder wird sie die Geschwindigkeit des Bedieners erheblich verringern?


In Ihrem Fall ist das nicht der Fall, denn beide Bedingungen müssen erfüllt sein. Aber wenn Sie die

if(a || Array[over_index]>val) {...}
dann, ja. Ist die Bedingung "a" erfüllt, wird die zweite Bedingung nicht geprüft. Dafür wird seit Jahren gekämpft, und jetzt schlagen Sie vor, dass wir ins letzte Jahrhundert zurückgehen...
 
x572intraday #:

Ich wage nicht, es einen Fehler zu nennen. Ich möchte nur sagen, dass mir eine Besonderheit der if-Anweisung aufgefallen ist. Ich vermute, dass dies auch für andere Sprachen gilt.

Wenn sich a als wahr herausstellt, springt check zu Array[over_index] und hier beginnt das Terminal durch den Teil'array out of range' abzustürzen, der durchaus wahr ist. Aber wenn sich a als falsch herausstellt, prüft das Terminal nicht auf die Array[over_index]-Bedingung und damit auf Index-Redundanz, und if überspringt weiter und der Programmierer weiß nicht, dass es ein Array mit einem nicht existierenden Index in seinem Programm gibt... oder vielmehr eine bestehende, aber überflüssige.

Vielleicht sollte es einen Fix dafür geben, so dass die Prüfung auf "array out of range" bis zum Ende der if-Schleife durchgeführt wird und die gleiche Meldung ausgegeben wird? Oder wird es die Geschwindigkeit des Bedieners erheblich verringern?

Wenn Sie das Verhalten ändern, werden normal geschriebene Programme einfach "abstürzen", während nicht geschriebene Programme schwer zu schreiben sein werden.

Lesen Sie weiter, dort finden Sie eine Beschreibung

 
x572intraday #:

Ich wage nicht, es einen Fehler zu nennen.

Wenn Sie möchten, dass das Argument immer berechnet wird, berechnen Sie es vor dem if-

 
Alexey Viktorov #:

In Ihrem Fall ist dies nicht der Fall, da beide Bedingungen erfüllt sein müssen. Aber wenn Sie das

dann, ja. Wenn die Bedingung "a" erfüllt ist, wird die zweite Bedingung nicht geprüft. Dafür wird seit Jahren gekämpft, und jetzt schlagen Sie vor, dass wir ins letzte Jahrhundert zurückgehen...

Siehe

// +--------
int start()
{
 if(false && Test()) { 
  Print("if Yes"); // Это никогда не напечатает
 }
}

// +--------
bool Test() {
 Print("Test"); // Это тоже, к ней не дошла очередь
 return(true);
}