_ArrayUnique Problem

  • Hallo zusammen!

    Ich habe in einer Funktion einen 1D-Array erstellen lassen in dem Handles stehen. Da allerdings in dem Array mehrere Handles mehrfach vorkommen, wollte ich diese mit _ArrayUnique( $Array ) auf einen Eintrag pro Handle kürzen.

    Mein Problem ist, dass AutoIt immer wieder aussteigt mit der Meldung:

    Zitat

    C:\Program Files (x86)\AutoIt3\Include\Array.au3" (1830) : ==> The requested action with this object has failed.:

    $oDictionary.Item($vElem)

    $oDictionary^ ERROR

    Was mache ich da falsch? Oder ist das ein Bug?

    VG

    Einmal editiert, zuletzt von JBO (2. Dezember 2021 um 13:33)

  • Bitte poste ein direkt ausführbares Minimalbeispiel, was diesen Fehler reproduziert und welches andere direkt bei sich selbst ausführen können.

    Naja, da das Script eins unserer Programme auf der Arbeit steuern soll, ist das nicht 100% ausführbar. Aber ich kann mal die Funktion posten, die den Fehler versursacht:

    Zum Verständnis:

    Die Funktion geht einen TreeView durch, wenn in Level 2 ein Eintrag gefunden wird, der dem Suchstring entspricht, wird das dazugehörige Level 0 Item in den Array gespeichert, mit _ArrayAdd. Am Ende gibt es mehrere Einträge mit dem gleichen Level 0 Item (Handle). Darum möchte ich den Array kürzen lassen.

  • Schau dir mal die Hilfe an. Ich habe eine Vermutung:

    Zitat

    $ARRAYUNIQUE_AUTO (0) (Default) : If first element not an integer runs fast algorithm - returns error if Int64 elements are found.

    : If first element is integer sets relevant FORCE32/64 value.

    Versuch mal (alles Default, nur der letzte Wert nicht):

    $aExpo = _ArrayUnique($aExportables, 0, 0, 0, $ARRAYUNIQUE_COUNT, 4)

  • Schau dir mal die Hilfe an. Ich habe eine Vermutung:

    Versuch mal (alles Default, nur der letzte Wert nicht):

    $aExpo = _ArrayUnique($aExportables, 0, 0, 0, $ARRAYUNIQUE_COUNT, 4)

    SUPER, vielen Dank!! Es hat funktioniert!