Es gibt eine Funktion, die zwar noch niemand gesehen hat (weder in der Hilfe noch auf der Website), aber sie ist vorhanden.)
Es gibt eine Funktion, die zwar noch niemand gesehen hat (weder in der Hilfe noch auf der Website), aber sie ist vorhanden.)
Es gibt eine Funktion, die zwar noch niemand gesehen hat (weder in der Hilfe noch auf der Website), aber sie ist vorhanden.)
Demnächst verfügbar
Um ein einzelnes Element zu löschen, wird die Funktion
void OnStart() { double array[]; CopyOpen(_Symbol, PERIOD_CURRENT, 0, 6, array); ArrayPrint(array); dellArrayElement(3, array); ArrayPrint(array); }/*******************************************************************/ void dellArrayElement(int shift, double &arr[]) { int arrSize = ArraySize(arr); if(shift > arrSize) return; if(shift < arrSize) ArrayCopy(arr, arr, shift, shift+1); ArrayResize(arr, arrSize-1); }
Ergebnis
2018.12.22 09:55:06.206 !00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13612 1.13586 1.13614 2018.12.22 09:55:06.206 !00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13586 1.13614
Dann können Sie diese Funktion in den Typ bool umwandeln, so dass Sie ihre Ausführung kontrollieren können. Wenn Sie klug sind und die Werte kontrollieren können, die Sie an das Gerät senden, können Sie es trotzdem verwenden...
Denken Sie daran, dass Sie die Größe von statischen Arrays nicht verringern können.
Um ein einzelnes Element zu löschen, wird die Funktion
Ergebnis
Dann können Sie diese Funktion in den Typ bool umwandeln, so dass Sie ihre Ausführung kontrollieren können. Wenn Sie schlau sind und die Werte kontrollieren können, die Sie an das Gerät senden, können Sie es trotzdem verwenden...
Vergessen Sie nicht, dass Sie die Größe von statischen Arrays nicht verringern können.
Der Genosse hat geschrieben: eindimensional und zweidimensional. Ihre Funktion funktioniert nicht mit zweidimensionalen. Zeigen Sie mir, wie man eine Funktion mit demselben Namen für beide Funktionen verwenden kann :)
Ich verkleinere das Array nicht, ich entferne ein Element daraus, das sind unterschiedliche Dinge. Ich verstehe, dass Ihre Funktion den Wert1.13612 gelöscht hat, er ist in der ZeiledellArrayElement(3, array) angegeben; d.h. das 3. Element wird aus dem Array entfernt, d.h. richtig verstanden? Wie schnell sind solche Experimente, bei denen das Programm viel geladen wird?
Oh, eine geheime Funktion, und wie funktioniert sie?
In C++ gibt es solche Funktionen, man schließt die Bibliothek an und die Aktion wird ausgeführt. Aber wir berücksichtigen die Tatsache, dass mql nicht über solche Funktionen verfügt und wollen handschriftliche Funktionen verwenden.
Ich habe dies gefundenhttp://kvodo.ru/urok-7-2-massivyi-osnovnyie-operatsii.html (und auch dies https://purecodecpp.com/archives/1935)
Angenommen, wir müssendas m-te Element in der Anzahl vonn Elementenaus einem FeldX entfernen. Dazu schreibt man einfach das (m+1)-te Element anstelle des Elementsm, das (m+2)-te Element anstelle des (m+1)-ten und so weiter,n-1 anstelle von(n-2)und verwendetn-1Element, wenn man weiter mit diesem Array arbeitet:
cout<<"\n m="; cin>>m; //ввод номера элемента, подлежащего удалению for (i=m; i<n-1; X[i+1],i++); //удаление m-го элемента for (i=0; i<n-1; i++) cout<<X[i]<<"\t"; //вывод измененного массива n--; //уменьшение количества элементов в массиве
Aber das ist mit C++. Hier müssen wir jedoch die Anzahl der im Array gespeicherten Elemente kennen. Sie müssen eine Funktion schreiben, die die Elemente so liest, wie sie geschrieben werden.
Es gibt eine Funktion, die zwar noch niemand gesehen hat (weder in der Hilfe noch auf der Website), aber sie ist vorhanden.)
Wie funktioniert das?
int ArrayRemove()
In der Hilfe gibt es dazu keine Beschreibung, wo kann ich das nachlesen?

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.