Ich drehe durch ! [arrays vergleichen]

  • Moin
    ich versuche derzeit 2 arrays zu vergleichen und scheitere daran :cursing:

    Ich habe schon versucht nur die arrays zu vergleichen also $Zahl1[0] < $Zahl2[0] dabei kommt aber immer das else zum einsatz
    Ich habe überprüft ob es wirklich zahlen sind mit StringIsDigit
    das haut nur bei mir hin wenn ich da wirklich 2 zahlen hinschreibe nur nicht wenn es strings sind
    das ganze kann man kürzen das ist mir klar nur ich bekomme es ja nichtmal auf der länge hin ... :cursing:
    mach ich was flasch ?

  • mach ich was flasch ?

    Ja - ein vernünftiges Beispiel zum Nachvollziehen deines Problems fehlt.
    Das Skript welches du gepostet hast ist so nicht lauffähig (Um ein Array zu deklarieren braucht es explizit ein Global/Local/Dim und die Funktion Msg() gibt es im Skript nicht).
    Wenn ich diese Fehler ausmerze macht das Skript genau das was ich von ihm erwarte:

    Ein fehlerhaftes oder merkwürdiges Verhalten kann ich nicht erkennen.
    Poste ein minimales Beispiel welches dein Problem reproduziert.

  • hey, mal von deinen "Fehlern" im Code (Arrays nicht per Global/Dim deklariert und einer unbekannten msg-Funktion) abgesehen, funktioniert das Script schon so, wie es soll.

    hab hier noch ein weiteres Beispiel für dich um dir das Vergleichen weiter zu verdeutlichen. Vielleicht hilft es dir ja, besser zu Verstehen.

    Edit: ich war zu langsam....

  • Code
    Global $aArray1[3] = [1,2,3]
    Global $aArray2[3] = [0,1,2]
    If UBound($aArray1, 1) <> UBound($aArray2, 1) Then Exit MsgBox(0, "Ergebnis", "Die beiden Arrays sind unterschiedlich groß!")
    For $i = o to UBound($aArray1) - 1
        If $aArray1[$i] <> $aArray2[$i] Then Exit MsgBox(0, "Ergebnis", "Die beiden Arrays haben unterschidlichen Inhalt!")
    Next

    Edit: Ich auch :)

  • Wenn ein Array über ein literal initialisiert wird, braucht man keine Dimension anzugeben:

    AutoIt
    Global $aFoo[3] = [1, 2, 3]
    Global $aBar = [1, 2, 3] ; ist das selbe