Funktionreferenz


_ArrayDelete

Beschreibung anzeigen in

Entfernt das festgelegte Element bzw. die festgelegten Elemente aus dem festgelegten 1D oder 2D Array

#include <Array.au3>
_ArrayDelete ( ByRef $aArray, $vRange )

Parameter

$aArray Das Array welches verändert werden soll.
$vRange Das zu löschende Element bzw. die zu löschenden Elemente. Dies kann entweder ein einzelner Index, ein String mit einem Bereich oder ein 1D-Array mit der Anzahl in dem [0]-Element sein (für Details siehe Beispiel).

Rückgabewert

Erfolg: die neue Größe des Arrays (siehe Bemerkungen)
Fehler: -1 und setzt das @error Flag auf ungleich null
@error: 1 - $aArray ist kein Arrays
2 - $aArray ist kein 1D oder 2D Array
3 - $vRange ist kein gültiger String mit einem Bereich
4 - $vRange ist kein 1D-Array oder hat nur 1 Element
5 - $vRange Inhalt ist außerhalb der Arraygrenzen

Bemerkungen

$vRange kann ein String sein, welcher die zu löschenden Zeilen enthält. Es kann eine einzelne Zahl oder ein Bereich sein, welcher durch die erste und die letzte Zeile, getrennt durch ein Bindestrich (-) definiert. Mehrere Items werden durch ein Semicolon (;) getrennt.

$vRange kann auch ein 1D-Array sein, in dem alle zu löschenden Zeilen samt der Anzahl im [0]-Element aufgelistet sind.

In beiden Fällen müssen die Zeilen nicht in aufsteigender Reihenfolge angegegen werden und könne dupliziert werden.

Diese Funktion ändert keine Zähler innerhalb des Arrays. Jedoch wird durch die Funktion, falls diese erfolgreich war, der neue höchste Zeilenindex des Array zurückgegeben.

Verwandte Funktionen

_ArrayAdd, _ArrayInsert

Beispiel

#include <Array.au3>

Local $aArray[5] = [0, 1, 2, 3, 4]

_ArrayDisplay($aArray, "Original")
_ArrayDelete($aArray, 2)
_ArrayDisplay($aArray, "Element 2 gelöscht")

Local $aArray_Base[25][4]
For $i = 0 To 24
    For $j = 0 To 3
        $aArray_Base[$i][$j] = $i & "-" & $j
    Next
Next

; Einzelne Zeile
$aArray = $aArray_Base
_ArrayDisplay($aArray, "VOR dem löschen")
_ArrayDelete($aArray, 7)
_ArrayDisplay($aArray, "EINZELNE ZEILE gelöscht")

; Bereich Übergabe als String
$aArray = $aArray_Base
Local $sRange = "0;11-15;24"
_ArrayDisplay($aArray, "VOR dem löschen")
_ArrayDelete($aArray, $sRange)
ConsoleWrite(" " & @error & @CRLF)
_ArrayDisplay($aArray, "BEREICH (ÜBERGABE ALS STRING) gelöscht")

; Bereich Übergabe als 1D-Array
$aArray = $aArray_Base
Local $aDel[4] = [3, 5, 11, 13]
_ArrayDisplay($aArray, "VOR dem löschen")
_ArrayDelete($aArray, $aDel)
_ArrayDisplay($aArray, "BEREICH (ÜBERGABE ALS ARRAY) gelöscht")