- 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
ArrayInsert
Einfügen einer Anzahl von Elementen eines Quellarrays in ein Zielarray, beginnend mit dem angegebenen Index.
bool ArrayInsert(
|
Parameter
dst_array[]
[in][out] Das Zielarray, dem die Elemente hinzugefügt werden sollen.
src_array[]
[in] Quellarray, aus dem die Elemente kopiert werden.
dst_start
[in] Index des Zielarrays, ab dem die Elemente eingefügt werden sollen.
src_start=0
[in] Index des Quellarrays, ab dem die Elemente aus dem Quellarray kopiert werden sollen.
count
[in] Anzahl der Elemente, die aus dem Quellarray kopiert werden sollen. WHOLE_ARRAY bedeutet, dass alle Elemente ab dem angegebenen Index des Quellarrays bis zu seinem Ende kopiert 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 (die Parameter start und/oder count sind falsch eingestellt worden oder das Quellarray src_array[] ist leer),
- 5056 - ERR_SERIES_ARRAY (das Array kann nicht geändert werden, es ist ein Indikatorpuffer),
- 4006 - ERR_INVALID_ARRAY (eine Kopie auf sich selbst ist nicht erlaubt, die Arrays sind unterschiedlichen Typs oder es gibt ein Array mit fester Größe, das Klassenobjekte oder Destruktorstrukturen enthält),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (das Array enthält keine POD-Strukturen, was bedeutet, dass ein einfaches Kopieren unmöglich ist),
- Fehler, die beim Ändern der Größe des Zielarrays dst_array[] auftreten, finden Sie in der Funktionsbeschreibung von ArrayRemove().
Hinweis
Wenn die Funktion für ein Array mit fester Größe verwendet wird, ändert sich die Größe des Zielarrays dst_array[] selbst nicht. Ausgehend von der Position dst_start werden die Elemente des Zielarrays nach rechts verschoben (die überzähligen Elemente "gehen verloren"), während die vom Quellarray kopierten Elemente ihren Platz einnehmen.
Sie können die Elemente nicht in die dynamischen Arrays einfügen, die von der Funktion SetIndexBuffer() als Indikatorpuffer definiert wurden. Bei Indikatorpuffern werden alle Größenänderungsvorgänge vom ausführenden Subsystem des Terminals durchgeführt.
Im Quellarray werden die Elemente ab dem Index src_start kopiert. Die Größe des Quellarrays bleibt unverändert. Die Elemente, die dem Zielarray hinzugefügt werden sollen, sind keine Links zu den Elementen des Quellarrays. Das bedeutet, dass nachfolgende Änderungen der Elemente in einem der beiden Arrays nicht in dem anderen Array berücksichtigt werden.
Beispiel:
//+------------------------------------------------------------------+
|
Siehe auch
ArrayRemove, ArrayCopy, ArrayResize, ArrayFree