Guten Abend
ich hab versucht eine Funktion zu schreiben, die ein übergebenes Array durchsucht. Bei mehrfach vorhandenen Werten sollen alle bis auf eines gelöscht werden, hinter dem Objekt soll dann stehen wie oft es vorhanden war. Ich hab mir das so vorgestellt das ich das übergebene Array erstmal in eine 2D-Array kopiere und dann in der 2. Ebene schreibe, wie oft es vorhanden ist. Das hat schon ganz schön Hirnschmalz bei mir abverlangt :wacko:
Zuletzt kam das dabei heraus:
Func searchArray($Array)
Local $Zwischenspeicher[UBound($Array) - 1][UBound($Array) -1 ]
Local $Name = True ;Variable dient dazu, ein Objekt bei mehrfach-Objekten zu behalten
Local $countItems ;Anzahl der mehrach vorhandenen Objekten
For $counter = 0 To UBound($Array) - 1
$Zwischenspeicher[$counter][0] = $Array[$counter] ;Array wird in 2D-Array kopiert
For $zaehler = 0 To UBound($Zwischenspeicher) - 1
If $Zwischenspeicher[$zaehler][0] == $Array[$counter] Then ;Bis her zwischengespeicherte Werte werden mit dem aktuellen Wert verglichen (ob mehrfach vorhanden)
If $Name == True Then ;Falls der Objektname noch nicht im Zwischenspeicher ist (damit ein Objekt von den mehreren vorhanden ist)
$Zwischenspeicher[$zaehler][0] = $Array[$counter] ;Wert wird in Zwischenspeicher geschrieben
$countItems = $countItems + 1 ;Zähler wird hochgezählt
$Name = False ;Name wird auf false gesetzt da der Objektname nun gespeichert wurde
Else
$Zwischenspeicher[$zaehler][0] = "" ;bei mehrfach vorhandenen Objekten wird der Objektname durch 'nichts' ersetzt
$countItems = $countItems + 1 ;der Zähler wird hier ebenfalls hochgezählt
EndIf
Else
$Zwischenspeicher[0][$zaehler] = $countItems ;der Zähler wird in die 2. Ebene geschrieben
$countItems = 0 ;Items werden wieder auf 0 gesetzt (da das Objekt nicht mehr in der aktuell durchsuchten Liste vorkam
$Name = True ;Name wird wieder auf True gesetzt
EndIf
Next
Next
Return $Zwischenspeicher
EndFunc
Leider kommt folgende Fehlermeldung:
[autoit](6) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
[/autoit]Habt ihr ne Idee?