Existe uma função, embora ninguém a tenha visto (nem na ajuda nem no site), mas ela está lá )
Existe uma função, embora ninguém a tenha visto (nem na ajuda nem no site), mas ela está lá )
Existe uma função, embora ninguém a tenha visto (nem na ajuda nem no site), mas ela está lá )
Em breve
Para excluir um único item, a função
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); }
Resultado
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
Então você pode converter esta função em tipo bool, para que você possa controlar sua execução. Basicamente, se você é inteligente e pode controlar os valores que lhe envia, você pode usá-lo de qualquer maneira...
Lembre-se, você não pode reduzir o tamanho das matrizes estáticas.
Para excluir um único item, a função
Resultado
Então você pode converter esta função em tipo bool, para que você possa controlar sua execução. Basicamente, se você é inteligente e pode controlar os valores que lhe envia, você pode usá-lo de qualquer maneira...
Não esqueça que você não pode reduzir o tamanho das matrizes estáticas.
O camarada escreveu: unidimensional e bidimensional. Sua função não funciona com bidimensionais. Mostre-me como fazer uma função com o mesmo nome funcionar para ambos :)
Não estou reduzindo o tamanho da matriz, estou removendo um elemento da mesma, estas são coisas diferentes. Eu entendo que sua função eliminou o valor1.13612, está especificado na linhadellArrayElement(3, array); ou seja, o 3º elemento é removido do array, ou seja, entendido corretamente? A que velocidade essas experiências estão carregando muito o programa?
oh, uma função secreta, e como ela funciona?
Em C++ há tais funções, você liga a biblioteca e a ação é executada. Mas levamos em conta o fato de que o mql não tem tais funções e queremos usar funções manuscritas.
Encontrei estehttp://kvodo.ru/urok-7-2-massivyi-osnovnyie-operatsii.html (e também este https://purecodecpp.com/archives/1935)
Suponha que precisamos removero m-ésimo elemento em númeroda matrizX que consiste emn elementos. Para isso, basta escrever (m+1)-ésimo elemento no lugar do elementom, (m+2)-ésimo elemento no lugar do elemento (m+1)-ésimo, e assim por diante,n-1 no lugar de(n-2)e usarn-1elementoquando trabalhar com esta matriz mais adiante:
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--; //уменьшение количества элементов в массиве
Mas isso é com C++. Mas aqui precisamos saber o número de itens armazenados na matriz. Você precisa escrever uma função que leia os elementos à medida que forem escritos.
Existe uma função, embora ninguém a tenha visto (nem na ajuda nem no site), mas ela está lá )
Como funciona?
int ArrayRemove()
Não há uma descrição na ajuda, onde posso ler sobre isso?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso