- 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
Supprime le nombre spécifié d'éléments du tableau à partir de l'indice spécifié.
bool ArrayRemove(
|
Parameters
array[]
[in][out] Tableau.
start
[in] Indice à partir duquel les éléments du tableau sont supprimés.
count=WHOLE_ARRAY
[in] Nombre d'éléments à supprimer. WHOLE_ARRAY signifie tous les éléments à partir de l'indice spécifié jusqu'à la fin du tableau.
Valeur de Retour
Retourne true en cas de succès, sinon false. Pour obtenir des informations sur l'erreur, appelez la fonction GetLastError(). Erreurs possibles :
- 5052 ERR_SMALL_ARRAY (valeur start trop grande),
- 5056 ERR_SERIES_ARRAY (le tableau ne peut pas être changé, buffer de l'indicateur),
- 4003 ERR_INVALID_PARAMETER (valeur count trop grande),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (tableau de taille fixe contenant des objets complexes avec un destructeur),
- 4006 - ERR_INVALID_ARRAY (tableau de taille fixe contenant des classes ou des structures avec un destructeur).
Note
Si la fonction est utilisée pour un tableau de taille fixe, la taille du tableau ne change pas : la "fin" restante est physiquement copiée à la position start. Pour une compréhension précise du fonctionnement de la fonction, reportez-vous à l'exemple ci-dessous. La copie "physique" signifie que les objets copiés ne sont pas créés en appelant le constructeur ou l'opérateur de copie. Au lieu de cela, la représentation binaire d'un objet est copiée. Pour cette raison, vous ne pouvez pas appliquer la fonction ArrayRemove() au tableau de taille fixe contenant des objets avec un destructeur (l'erreur ERR_INVALID_ARRAY ou ERR_STRUCT_WITHOBJECTS_ORCLASS est activée). Lors de la suppression de ce type d'objet, le destructeur doit être appelé 2 fois pour l'objet d'origine et pour sa copie.
Vous ne pouvez pas supprimer les éléments de tableaux dynamiques désignés comme buffers d'un indicateur avec la fonction SetIndexBuffer(). Cela résultera en l'erreur ERR_SERIES_ARRAY. Pour les buffers d'indicateurs, toutes les opérations de changement de taille sont effectuées par le sous-système d'exécution du terminal.
Exemple:
//+------------------------------------------------------------------+
|
Voir également
ArrayInsert, ArrayCopy, ArrayResize, ArrayFree