Removes the specified number of elements from the array starting with a specified index.
[in] Index, starting from which the array elements are removed.
[in] Number of removed elements. The WHOLE_ARRAY value means removing all elements from the specified index up the end of the array.
Returns true if successful, otherwise - false. To get information about the error, call the GetLastError() function. Possible errors:
- 5052 – ERR_SMALL_ARRAY (too big start value),
- 5056 – ERR_SERIES_ARRAY (the array cannot be changed, indicator buffer),
- 4003 – ERR_INVALID_PARAMETER (too big count value),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (fixed-size array containing complex objects with the destructor),
- 4006 - ERR_INVALID_ARRAY (fixed-size array containing structure or class objects with a destructor).
If the function is used for a fixed-size array, the array size does not change: the remaining "tail" is physically copied to the start position. For accurate understanding of how the function works, see the example below. "Physical" copying means the copied objects are not created by calling the constructor or copying operator. Instead, the binary representation of an object is copied. For this reason, you cannot apply the ArrayRemove() function to the fixed-size array containing objects with the destructor (the ERR_INVALID_ARRAY or ERR_STRUCT_WITHOBJECTS_ORCLASS error is activated). When removing such an object, the destructor should be called twice – for the original object and its copy.
You cannot remove elements from dynamic arrays designated as the indicator buffers by the SetIndexBuffer() function. This will result in the ERR_SERIES_ARRAY error. For indicator buffers, all size changing operations are performed by the terminal's executing subsystem.