ArrayRemove()

 
добавьте пожалуйста в MT4 ArrayRemove, очень полезная функция.

или дайте пожалуйста код самой функции по принципу как это сделано в этой статье https://www.mql5.com/ru/articles/81

что бы ArrayRemove в 4 и 5 работала одинаково.
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Pavel Verveyko:
добавьте пожалуйста в MT4 ArrayRemove, очень полезная функция.

сомневаюсь, что добавят, тут уже 32-битные версии МТ5 разработчики поддерживать не хотят

напишите сами

вот набросал, работает корректно (насколько я понял как работает ArrayRemove() - не пользовался)

void OnStart()
{
   int arr[];
   Print("--- ArrayRemoveMQL4 ---");
   ArrayResize(arr, 20);
   for(int i = 0; i < ArraySize(arr); i++) arr[i] = i;
   ArrayPrint(arr);
   ArrayRemoveMQL4(arr, 5, 10);
   ArrayPrint(arr);


   Print("--- ArrayRemove ---");
   ArrayResize(arr, 20);
   for(int i = 0; i < ArraySize(arr); i++) arr[i] = i;
   ArrayPrint(arr);
   ArrayRemove(arr, 5, 10);
   ArrayPrint(arr);
}
//+------------------------------------------------------------------+
template<typename T>
bool  ArrayRemoveMQL4(T& array[], uint start, uint count)
{
   return(ArrayCopy(array, array, start, start + count) && ArrayResize(array, ArraySize(array) - count) > 0);
}
//+------------------------------------------------------------------+

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) --- ArrayRemoveMQL4 ---

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4 15 16 17 18 19

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) --- ArrayRemove ---

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4 15 16 17 18 19


единственное нужно обработку ошибок правильно сделать - самое трудное, не люблю 

и не стал разбираться с параметром WHOLE_ARRAY  - тоже нужно посчитать размеры массива, не интересно

 
Igor Makanu:

сомневаюсь, что добавят, тут уже 32-битные версии МТ5 разработчики поддерживать не хотят

напишите сами

вот набросал, работает корректно (насколько я понял как работает ArrayRemove() - не пользовался)

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) --- ArrayRemoveMQL4 ---

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4 15 16 17 18 19

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) --- ArrayRemove ---

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19

2020.06.11 16:44:16.123 tst2 (EURUSD,H1) 0  1  2  3  4 15 16 17 18 19


единственное нужно обработку ошибок правильно сделать - самое трудное, не люблю 

и не стал разбираться с параметром WHOLE_ARRAY  - тоже нужно посчитать размеры массива, не интересно

спасибо. а тут не давно в соседней ветке о кроссплатформенности мечтали))

наверно действительно стоит сделать собственную функцию ArrayRemove и использовать её и в 4 и 5. тогда точно будет одинаково