1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Forum
  3. AutoIt 3
  4. Skripte

Array2D Sortieren

  • Schnitzel
  • 25. Februar 2010 um 19:32
  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 25. Februar 2010 um 19:32
    • #1

    hallo leute. aufgrund Oscar's Thread ( https://autoit.de/index.php?page…8088&%20%20 ) und meiner langeweile hab ich mich hingesetzt und ne simple Funktion zum Sortieren eines 2D-Arrays gebastelt.

    Und da ich oft was im Hilfebereich bastle und noch nie was unter Scripte gepostet hab dachte ich mir dass es jetzt mal zeit wird. Vllt kanns ja jemand gebrauchen.

    Freue mich über jedes Feedback, gefundene Fehler oder Verbesserungsvorschläge.


    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Dim $array[100][4]
    For $i = 0 To 99
    For $j = 0 to 3
    $array[$i][$j] = Random(0, 100000, 1)
    Next
    Next; Array mit Zufallsinhalt erzeugen

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

    $var = _Array2D_Sort($array, 0)
    _ArrayDisplay($var)
    $var = _Array2D_Sort($array, 1)
    _ArrayDisplay($var)
    $var = _Array2D_Sort($array, 2)
    _ArrayDisplay($var)
    $var = _Array2D_Sort($array, 3)
    _ArrayDisplay($var)
    $var = _Array2D_Sort($array, 4)
    MsgBox(0,"",@error)

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _Array2D_Sort
    ; Description ...: Sorts a 2D Array by Index
    ; Syntax.........: _Array2D_Sort($avArray[, $iIndex = 0])
    ; Parameters ....: $avArray - Array to display
    ; $iIndex - [optional] Sort Array by this Index
    ; Return values .: Success - Sorted Array
    ; Failure - 0, sets @error:
    ; |1 - $avArray is not an Array
    ; |2 - $avArray is not an 2D-Array
    ; |3 - $iIndex is out of
    ; Author ........: Schnitzel
    ; Modified.......:
    ; Link ..........: https://autoit.de/index.php?page=Thread&threadID=18117
    ; Example .......: Yes
    ; ===============================================================================================================================

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

    Func _Array2D_Sort($avArray, $iIndex = 0)
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)
    If Not UBound($avArray, 0) = 2 Then Return SetError(2, 0, 0)
    If UBound($avArray, 2) <= $iIndex Then Return SetError(3, 0, 0)
    Local $bTausch, $sTmp, $i = 0, $iRuns = UBound($avArray)-2
    Do
    $bTausch = False
    For $j = 0 To $iRuns - $i
    If $avArray[$j][$iIndex] > $avArray[$j+1][$iIndex] Then
    For $k = 0 To UBound($avArray, 2) - 1
    $sTmp = $avArray[$j+1][$k]
    $avArray[$j+1][$k] = $avArray[$j][$k]
    $avArray[$j][$k] = $sTmp
    Next
    $bTausch = True
    EndIf
    Next
    $i += 1
    Until ($bTausch = False) Or ($i = $iRuns)
    Return $avArray
    EndFunc

    [/autoit]

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  • name22
    Incognito
    Reaktionen
    4
    Beiträge
    3.700
    • 25. Februar 2010 um 20:23
    • #2

    Funktioniert wenn es das tun soll was es macht^^. Ich versteh leider immer noch nicht wo da der Unterschied zur offiziellen Funktion liegt.
    P.s. Ich kann das unter deinem Avatar nicht lesen.

    Meine AutoIt Scripts

    Scripts:
    GDI+ Kollision von Kreisen
    GDI+ Spiel: AutoIt Arena Fight
    GDI+ 3D OBJ Viewer

    UDF:
    UDF: ToolTips für Slider Controls
    UDF: Alternativer ToolTip mit GDI+

    MyPastebin

  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 25. Februar 2010 um 20:36
    • #3
    Zitat von name22

    Funktioniert wenn es das tun soll was es macht^^. Ich versteh leider immer noch nicht wo da der Unterschied zur offiziellen Funktion liegt.

    Lol stimmt. die kann ja genau das gleich :D
    da hab ich wohl im thread was falsch verstanden und vorschnell gehandelt
    Was für n Müll thread :rofl:

    Zitat

    P.s. Ich kann das unter deinem Avatar nicht lesen.

    ja hab ich leider bemerkt. das wird zu klein...
    "Der Support sagt, das Problem befindet sich irgendwo zwischen der Tastatur und meinem Stuhl"

    das steht da ;)

    funktionsupdate:

    [autoit]

    Func _Array2D_Sort(ByRef $avArray, $1 = 0, $2 = 0, $3 = 0, $4 = 0 )
    Return _ArraySort(ByRef $avArray, $1, $2, $3, $4)
    EndFunc

    [/autoit]

    :rofl:

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™