Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Copiar a matriz "em si mesma", começando na posição ao lado da que deve ser apagada e escrevendo a partir da que deve ser apagada. E depois redimensionar como sugerido por Grigori.S.B
Curiosamente, se eu o entendi corretamente, você precisa usar esta função?
Bom dia, obrigado por sua resposta.
Acho que você não notou, você pode olhar acima, todas as perguntas eram sobre a MQL5.
Entendo que a diferença não é crucial às vezes, mas mesmo assim. A função que você citou redimensiona a matriz, talvez cortando elementos extras se o tamanho for reduzido.
Isto não é o que é necessário. É preciso remover um elemento, encontrando-o por valor. Eu também tentei esta função, escrevi sobre ela em #23. De qualquer forma, obrigado.
Também não prestei atenção a isso. O mql5 tem a função ArrayRemove e sem problemas.
Neste caso oArrayRemove é mais adequado, há um exemplo no manual, ele funciona exatamente como este
O único problema é que estes exemplos e funções são projetados para matrizes unidimensionais, e eles não querem trabalhar com matrizes bidimensionais.
Acho que estou sentindo falta de algo muito importante e fundamental. Mas o que é isso?
Estou lhes dizendo, já perdi o livro de referência.
Neste caso oArrayRemove é mais adequado, há um exemplo no manual, ele funciona exatamente como este
O único problema é que estes exemplos e funções são projetados para matrizes unidimensionais, e eles não querem trabalhar com matrizes bidimensionais.
Acho que estou sentindo falta de algo muito importante e fundamental. Mas o que é isso?
Estou lhe dizendo, eu já perdi o rastro disso.
Para uma matriz bidimensional, você precisa multiplicar o número da linha para eliminação por 2. Para uma matriz tridimensional multiplicar por 3...
Não entendo bem isto, você poderia, por favor, elaborar ou melhor ainda, me mostrar a edição de um trecho do meu código, eu o coloquei acima. Se for inconveniente, então o que quer que seja, eu vou descobrir de alguma forma.
Não, a ordem não é importante, basta apagar uma entrada conhecida (encontrada pelo conhecimento, o índice é conhecido). Pode estar em qualquer lugar da matriz (no início, no meio, no final).ArrayRemove é ótimo, tudo estaria bem, mas como aplicar esta função a uma matriz bidimensional? o manual é silencioso sobre isso.
Não, a ordem não é importante, apenas precisamos apagar um registro conhecido (encontrado por cognição, índice é conhecido). Pode estar em qualquer lugar da matriz (no início, no meio, no final).ArrayRemove é ótimo, tudo estaria bem, mas como aplicar esta função a uma matriz bidimensional? Não há nada no manual sobre isso.
Neste caso oArrayRemove é mais adequado, há um exemplo no manual, ele funciona exatamente da mesma maneira
O único problema é que estes exemplos e funções são projetados para matrizes unidimensionais, e eles não querem trabalhar com matrizes bidimensionais.
Acho que estou sentindo falta de algo muito importante e fundamental. Mas o que é isso?
Estou lhe dizendo, eu perdi o livro de referência.
Isso é um absurdo. Eu usei esta função sem ler o manual. No depurador eu vi como o elemento foi excluído e o tamanho da matriz foi instantaneamente reduzido. Eu verifiquei, funciona mesmo com uma série de estruturas sem nenhum problema. Agora não posso trabalhar com o código, mas apenas com palavras: por exemplo, quero apagar o 3º índice de uma matriz bidimensional. Acontece que o quinto e o sexto valores têm que ser removidos. Ao copiar, a função, HOWEVER, organiza todos os valores em uma matriz unidimensional e acontece que o terceiro par começa com o índice 5. Isto geralmente chega a uma realização após algumas experiências.
Quanto ao ArrayRemove quando eu puder, vou testá-lo em matrizes de 2-4 dimensões. Por falta de necessidade, nunca o testei e não suspeitei que não funcionasse.
Adicionado:
Verificado. Não esqueça que você não pode redimensionar uma matriz estática. É por isso que no exemplo da documentação o tamanho da matriz permanece o mesmo e as duas últimas cordas são repetidas. Quando você elimina linhas de uma matriz dinâmica, o tamanho muda sem nenhum problema.
O manual deve ser esfregado nos buracos: )))) no monitor.
Aqui está a matriz tridimensional e o resultado:
Isso é uma bobagem. Eu usei esta função sem ler o manual. No depurador eu vi como o elemento é excluído e o tamanho da matriz é instantaneamente reduzido. Verificado, mesmo em um conjunto de estruturas funciona sem problemas. Agora não posso trabalhar com o código, mas apenas com palavras: por exemplo, quero apagar o 3º índice de uma matriz bidimensional. Acontece que o quinto e o sexto valores têm que ser removidos. Ao copiar, a função, HOWEVER, organiza todos os valores em uma matriz unidimensional e acontece que o terceiro par começa com o índice 5. Isto geralmente chega a uma realização após algumas experiências.
Quanto ao ArrayRemove quando eu puder, vou testá-lo em matrizes de 2-4 dimensões. Por falta de necessidade, nunca o testei e não suspeitei que não funcionasse.
Adicionado:
Verificado. Não esqueça que você não pode redimensionar uma matriz estática. É por isso que no exemplo da documentação o tamanho da matriz permanece o mesmo e as duas últimas cordas são repetidas. Quando você elimina linhas de uma matriz dinâmica, o tamanho muda sem nenhum problema.
O diretório tem que ser lavado até os buracos: )))) no monitor.
Aqui eu fiz uma matriz tridimensional e o resultado:
Seu exemplo é muito lento, com um grande número de valores que isto será perceptível.
Com muito o quê? Elementos de matriz que não são preenchidos em cada carrapato? Como será perceptível?