- ArrayBsearch
- ArrayCopy
- ArrayCompare
- ArrayFree
- ArrayGetAsSeries
- ArrayInitialize
- ArrayFill
- ArrayIsDynamic
- ArrayIsSeries
- ArrayMaximum
- ArrayMinimum
- ArrayPrint
- ArrayRange
- ArrayResize
- ArrayInsert
- ArrayRemove
- ArrayReverse
- ArraySetAsSeries
- ArraySize
- ArraySort
- ArraySwap
- ArrayToFP16
- ArrayToFP8
- ArrayFromFP16
- ArrayFromFP8
ArrayRemove
Rimuove il numero specificato di elementi dall'array iniziando con un indice specificato.
bool ArrayRemove(
|
Parametri
array[]
[in][out] Array.
start
[in] Indice, a partire dal quale vengono rimossi gli elementi dell'array.
count=WHOLE_ARRAY
[in] Numero di elementi rimossi. Il valore WHOLE_ARRAY significa la rimozione di tutti gli elementi dall'indice specificato fino alla fine dell'array.
Valore di ritorno
Restituisce true se ha successo, altrimenti - false. Per ottenere informazioni sull'errore, chiamare la funzione GetLastError(). Possibili errori:
- 5052 – ERR_SMALL_ARRAY (valore start troppo grande),
- 5056 – ERR_SERIES_ARRAY (l'array non può essere modificato, buffer indicatore),
- 4003 – ERR_INVALID_PARAMETER (valore count troppo grande),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (array a grandezza fissa contenente oggetti complessi con il distruttore),
- 4006 - ERR_INVALID_ARRAY (array a grandezza fissa contenente strutture o oggetti della classe con un distruttore).
Nota
Se la funzione viene utilizzata per un array di grandezza fissa, la grandezza dell'array non cambia: la "coda" rimanente viene fisicamente copiata nella posizione start. Per una comprensione accurata di come lavora la funzione, vedere l'esempio di seguito. Copia "fisica" significa che gli oggetti copiati non vengono creati chiamando il costruttore o l'operatore di copia. Invece, viene copiata la rappresentazione binaria dell'oggetto. Per questo motivo, non è possibile applicare la funzione ArrayRemove() all'array di grandezza fissa contenente oggetti con il distruttore (l'errore ERR_INVALID_ARRAY o ERR_STRUCT_WITHOBJECTS_ORCLASS viene attivato). Quando si rimuove un oggetto di questo tipo, il distruttore dovrebbe essere chiamato due volte - per l'oggetto originale e per la sua copia.
Non è possibile rimuovere elementi dagli array dinamici designati come buffer indicatore dalla funzione SetIndexBuffer(). Ciò provocherà l'errore ERR_SERIES_ARRAY. Per i buffer indicatori, tutte le operazioni di modifica della grandezza vengono eseguite dal sottosistema di esecuzione del terminale.
Esempio:
//+------------------------------------------------------------------+
|
Guarda anche
ArrayInsert, ArrayCopy, ArrayResize, ArrayFree