- 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
Entfernt die angegebene Anzahl von Elementen im Array, beginnend mit dem angegebenen Index.
bool ArrayRemove(
|
Parameter
array[]
[in][out] Array.
Start
[in] Index, ab dem die Elemente entfernt werden sollen.
count=WHOLE_ARRAY
[in] Anzahl der zu entfernenden Elemente. WHOLE_ARRAY bedeutet, dass alle Elemente ab dem angegebenen Index bis zum Ende des Array entfernt werden.
Rückgabewert
Liefert bei Erfolg true, ansonsten false. Um Informationen über den Fehler zu erhalten, rufen Sie die Funktion GetLastError() auf. Mögliche Fehler:
- 5052 – ERR_SMALL_ARRAY (Zu großer Wert für start),
- 5056 - ERR_SERIES_ARRAY (das Array kann nicht geändert werden, es ist ein Indikatorpuffer),
- 4003 – ERR_INVALID_PARAMETER (Zu großer Wert für count),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (Array mit fixer Größe, das komplexe Objekte mit einem Destruktor enthält),
- 4006 - ERR_INVALID_ARRAY (Array mit fixer Größe, das Strukturen oder Klassenobjekte mit einem Destruktor enthält).
Hinweis
Wenn die Funktion für ein Array mit fester Größe verwendet wird, ändert sich die Array-Größe nicht: Der verbleibende "Rest" wird physisch an die Position start kopiert. Zum genauen Verständnis der Funktionsweise der Funktion betrachten Sie das folgende Beispiel. "Physisches" Kopieren bedeutet, dass die kopierten Objekte nicht durch Aufruf des Konstruktors oder des Kopieroperators erzeugt werden. Stattdessen wird die binäre Darstellung eines Objekts kopiert. Aus diesem Grund können Sie die Funktion ArrayRemove() nicht auf das Array mit fester Größe anwenden, das Objekte mit dem Destruktor enthält (die Fehler ERR_INVALID_ARRAY oder ERR_STRUCT_WITHOBJECTS_ORCLASS werden gesetzt). Beim Entfernen eines solchen Objekts würde der Destruktor zweimal aufgerufen werden - für das Originalobjekt und seine Kopie.
Sie können keine Elemente aus dynamischen Arrays entfernen, die von der Funktion SetIndexBuffer() als Indikatorpuffer definiert wurden. Dies führt zum Fehler ERR_SERIES_ARRAY. Bei Indikatorpuffern werden alle Größenänderungsvorgänge vom ausführenden Subsystem des Terminals durchgeführt.
Beispiel:
//+------------------------------------------------------------------+
|
Siehe auch
ArrayInsert, ArrayCopy, ArrayResize, ArrayFree