Zahlen sortieren funktioniert nicht

  • Hallo zusammen

    Ich bin ganz neu hier im Forum und grüße euch!

    Ich melde mich da ich ein Problem habe, ich will Zahlen sortieren aber er funktioniert nicht, kann mir jemand helfen?


    Ich bin für jede Hilfe dankbar!


    [autoit]


    #Include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    Dim $aArray[20] = ["3.797", "135555555,987", "6.059", "300000,68", "15,454","0,55","87,25"]

    [/autoit][autoit][/autoit][autoit]

    _ArraySort($aArray)

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aArray)

    [/autoit]

    2 Mal editiert, zuletzt von Bernd (3. Februar 2014 um 12:19)

  • AutoIt scheint nach Außen nur einen Datentyp zu kennen: Variant.
    Dieser Datentyp kann aber intern verschiedene Datentypen annehmen.
    Er kann ein String (Zeichenkette) sein, eine Ganzzahl oder eine Gleitkommazahl usw.
    Für das Sortieren ist es wichtig zwei Werte auf <, > oder = hin zu überprüfen.
    Dieser Vergleich arbeitet unterschiedlich je nach Datentyp.
    Zahlen werden der Größe nach verglichen.
    Strings werden zeichenweise verglichen.

    Und wenn du jetzt noch weißt das Strings in AutoIt durch Anführungszeichen gesetzt werden kommst du vielleicht darauf warum deine Sortierung nicht funktioniert.

  • Hallo AspirinJunkie

    Du hast mir mit deiner Antwort sehr geholfen, somit konnte ich eine Lösung erstellen!

    Auf die Idee wäre ich nie gekommen, danke !!!

    CLOSED

    Hm wie stellt man um auf Beitrag geschlossen ?

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    Dim $aArray[20] = ["3.797", "135555555.987", "6.059", "300000.68", "15.454","0.55","87.25"]

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $aArray=_StringzuNummer($aArray)

    [/autoit][autoit][/autoit][autoit]

    _ArraySort($aArray)

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aArray)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _StringzuNummer($aArray)
    for $i=0 to UBound($aArray)-1
    $aArray[$i]=Number($aArray[$i])
    next
    Return $aArray
    EndFunc

    [/autoit]
  • Deinen ersten Beitrag editieren und den Präfix ändern.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Noch schöner wäre es natürlich du würdest die Zahlen gleich direkt als Zahl eintragen anstatt erst als String und dann umzuwandeln:

    [autoit]

    Global $aArray[] = [3.797, 135555555.987, 6.059, 300000.68, 15.454, 0.55, 87.25]

    [/autoit]