Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Копирование массива "сам в себя", начиная с позиции следующей за удаляемой и писать начиная с удаляемой. А затем изменить размер как подсказал Grigori.S.B
Интересненько, если я правильно Вас понял, пользовать нужно вот эту функцию?
Доброе утро, спасибо за ответ.
Вы видимо не обратили внимание, выше можно посмотреть, все вопросы касались MQL5.
Понимаю что разница не принципиальна иногда, но тем не менее. Приведенная Вами функция изменяет размер массива, возможно отрезает лишние элименты, если размер уменьшается.
Это не то что нужно. Нужно удалить элимент, найдя его по значению. Да и пробовал я воспользоваться и этой функцией, в #23 писал про это. В любом случае - спасибо.
Я тоже не обратил на это внимания. В mql5 есть функция ArrayRemove и никаких проблем.
В таком случае больше подходит ArrayRemove, в справочнике и пример есть, именно так и работает
Вот только не задача, эти примеры и функции заточены под одномерные массивы, а с двумерным работать не хотят.
Думаю я недопонимаю чего-то очень важного, принципиального. Вот только чего???
Говорю же, справочник затер уже.
В таком случае больше подходит ArrayRemove, в справочнике и пример есть, именно так и работает
Вот только не задача, эти примеры и функции заточены под одномерные массивы, а с двумерным работать не хотят.
Думаю я недопонимаю чего-то очень важного, принципиального. Вот только чего???
Говорю же, справочник затер уже.
Для двухмерного массива надо номер строки для удаления умножить на 2. Для 3х мерного на 3...
Тут не совсем понял, можно как-то подробнее плиз, а еще лучше на куске моего кода правку показать, там выше публиковал. Если неудобно, то как угодно, разберусь уж как-нибудь.
Нет порядок не важен, нужно просто удалить известную (найденную позначению, индекс тоесть известен) запись. Она может в любом месте массива (в начале, в середине, в конце). ArrayRemove подходит великолепно, все бы было хорошо, но как эту функцию применить к двухмерному массиву? в справочнике про это ни слова.,,,???
Нет порядок не важен, нужно просто удалить известную (найденную позначению, индекс тоесть известен) запись. Она может в любом месте массива (в начале, в середине, в конце). ArrayRemove подходит великолепно, все бы было хорошо, но как эту функцию применить к двухмерному массиву? в справочнике про это ни слова.,,,???
В таком случае больше подходит ArrayRemove, в справочнике и пример есть, именно так и работает
Вот только не задача, эти примеры и функции заточены под одномерные массивы, а с двумерным работать не хотят.
Думаю я недопонимаю чего-то очень важного, принципиального. Вот только чего???
Говорю же, справочник затер уже.
Чушь какая-то. Я пользовался этой функцией не вчитываясь в справочник. В дебагере наблюдал как удаляется элемент и моментально сокращается размер массива. Проверено, даже на массиве структур работает без проблем. Сейчас с кодом работать не могу, только на словах: Например надо удалить из 2х мерного массива 3й индекс. Получается что надо удалить пятое и шестое значение. При копировании функция, КАК-БЫ, выстраивает все значения в одномерный массив и получается, что третья пара начинается с индекса 5. В общем это приходит к пониманию после нескольких экспериментов.
Что касается ArrayRemove когда смогу, проверю на 2х-4х мерных массивах. За ненадобностью не проверял никогда и не подозревал что не работает.
Добавлено:
Проверил. Не следует забывать что статическому массиву нельзя изменить размер. Потому в примере из документации размер массива остался прежний и две последние строки повторяются. При удалении строк из динамического массива размер изменяется без проблем.
Справочник надо затирать до дыр:)))) в мониторе.
Вот сделал 3х мерный массив и результат:
Чушь какая-то. Я пользовался этой функцией не вчитываясь в справочник. В дебагере наблюдал как удаляется элемент и моментально сокращается размер массива. Проверено, даже на массиве структур работает без проблем. Сейчас с кодом работать не могу, только на словах: Например надо удалить из 2х мерного массива 3й индекс. Получается что надо удалить пятое и шестое значение. При копировании функция, КАК-БЫ, выстраивает все значения в одномерный массив и получается, что третья пара начинается с индекса 5. В общем это приходит к пониманию после нескольких экспериментов.
Что касается ArrayRemove когда смогу, проверю на 2х-4х мерных массивах. За ненадобностью не проверял никогда и не подозревал что не работает.
Добавлено:
Проверил. Не следует забывать что статическому массиву нельзя изменить размер. Потому в примере из документации размер массива остался прежний и две последние строки повторяются. При удалении строк из динамического массива размер изменяется без проблем.
Справочник надо затирать до дыр:)))) в мониторе.
Вот сделал 3х мерный массив и результат:
Пример у вас очень медленный, при большом количестве значений это будет заметно.
При большом количестве чего? Элементов массива которые заполняются даже не на каждом тике? Чем будет заметно?