Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Copiare l'array "in se stesso", iniziando dalla posizione accanto a quella da cancellare e scrivendo da quella da cancellare. E poi ridimensionare come suggerito da Grigori.S.B
È interessante, se ho capito bene, è necessario usare questa funzione?
Buongiorno, grazie per la sua risposta.
Immagino che non l'abbiate notato, potete guardare sopra, tutte le domande riguardavano MQL5.
Capisco che la differenza non è cruciale a volte, ma tuttavia. La funzione che hai citato ridimensiona l'array, forse tagliando elementi extra se la dimensione è ridotta.
Questo non è ciò che è necessario. È necessario rimuovere un elemento trovandolo per valore. Ho provato anch'io questa funzione, ne ho scritto nel #23. Grazie comunque.
Anche io non ci ho fatto caso. mql5 ha la funzione ArrayRemove e nessun problema.
In questo casoArrayRemove è più adatto, c'è un esempio nel manuale, funziona esattamente così
L'unico problema è che questi esempi e funzioni sono progettati per array unidimensionali, e non vogliono lavorare con array bidimensionali.
Credo che mi manchi qualcosa di molto importante e fondamentale. Ma cos'è?
Ti dico che ho già perso il libro di riferimento.
In questo casoArrayRemove è più adatto, c'è un esempio nel manuale, funziona esattamente così
L'unico problema è che questi esempi e funzioni sono progettati per array unidimensionali, e non vogliono lavorare con array bidimensionali.
Credo che mi manchi qualcosa di molto importante e fondamentale. Ma cos'è?
Ti dico che ho già perso il conto.
Per un array bidimensionale, è necessario moltiplicare il numero di riga per la cancellazione per 2. Per una matrice tridimensionale moltiplicare per 3...
Non capisco bene questo, potresti elaborarlo, o meglio ancora, mostrarmi la modifica su un pezzo del mio codice, l'ho postato sopra. Se è scomodo, allora non importa, lo capirò in qualche modo.
No, l'ordine non è importante, basta cancellare una voce nota (trovata per conoscenza, l'indice è noto). Può essere ovunque nell'array (all'inizio, in mezzo, alla fine).ArrayRemove è ottimo, tutto andrebbe bene, ma come applicare questa funzione a un array bidimensionale? il manuale non ne parla.
No, l'ordine non è importante, abbiamo solo bisogno di cancellare un record noto (trovato dalla cognizione, l'indice è noto). Può essere ovunque nell'array (all'inizio, nel mezzo, alla fine).ArrayRemove è ottimo, tutto andrebbe bene, ma come applicare questa funzione a un array bidimensionale? Non c'è niente nel manuale su questo.
In questo casoArrayRemove è più adatto, c'è un esempio nel manuale, funziona esattamente così
L'unico problema è che questi esempi e funzioni sono progettati per array unidimensionali, e non vogliono lavorare con array bidimensionali.
Credo che mi manchi qualcosa di molto importante e fondamentale. Ma cos'è?
Vi dico che ho perso il libro di riferimento.
Questa è una sciocchezza. Ho usato questa funzione senza leggere il manuale. Nel debugger ho visto come l'elemento è stato cancellato e la dimensione dell'array è stata immediatamente ridotta. Ho controllato, funziona anche con un array di strutture senza problemi. Ora non posso lavorare con il codice, ma solo con le parole: per esempio, voglio cancellare il 3° indice da un array bidimensionale. Si scopre che il quinto e il sesto valore devono essere rimossi. Al momento della copia, la funzione organizza tutti i valori in un array unidimensionale e si scopre che la terza coppia inizia con l'indice 5. In generale questo si realizza dopo alcuni esperimenti.
Per quanto riguarda ArrayRemove, quando posso, lo testerò su array di 2-4 dimensioni. Per mancanza di necessità non l'ho mai testato e non ho sospettato che non funzionasse.
Aggiunto:
Controllato. Non dimenticate che non potete ridimensionare un array statico. Ecco perché nell'esempio della documentazione la dimensione dell'array rimane la stessa e le ultime due stringhe sono ripetute. Quando si cancellano righe da un array dinamico, la dimensione cambia senza problemi.
Il manuale deve essere sfregato fino ai fori: )))) nel monitor.
Ecco l'array tridimensionale e il risultato:
Questa è una sciocchezza. Ho usato questa funzione senza leggere il manuale. Nel debugger ho visto come l'elemento viene cancellato e la dimensione dell'array si riduce istantaneamente. Controllato, anche su un array di strutture funziona senza problemi. Ora non posso lavorare con il codice, ma solo con le parole: per esempio, voglio cancellare il 3° indice da un array bidimensionale. Si scopre che il quinto e il sesto valore devono essere rimossi. Al momento della copia, la funzione organizza tutti i valori in un array unidimensionale e si scopre che la terza coppia inizia con l'indice 5. In generale questo si realizza dopo alcuni esperimenti.
Per quanto riguarda ArrayRemove, quando posso, lo testerò su array di 2-4 dimensioni. Per mancanza di necessità non l'ho mai testato e non ho sospettato che non funzionasse.
Aggiunto:
Controllato. Non dimenticate che non potete ridimensionare un array statico. Ecco perché nell'esempio della documentazione la dimensione dell'array rimane la stessa e le ultime due stringhe sono ripetute. Quando si cancellano righe da un array dinamico, la dimensione cambia senza problemi.
La directory deve essere cancellata in holes:)))) nel monitor.
Qui ho fatto un array tridimensionale e il risultato:
Il tuo esempio è molto lento, con un gran numero di valori questo sarà evidente.
Con un sacco di cosa? Elementi dell'array che non sono nemmeno riempiti ad ogni tick? Come si noterà?