Array mit Return aus einer Funktion zurückgeben

  • Hiho ich bin mal wieder zu doof :(
    Ich würde gerne ein Array aus einer Funktion zurückgeben aber irgendwie krieg ichs net hin da er wenn return kommt er ja dann die funktion abbricht :(

    Spoiler anzeigen
    [autoit]

    Func flugzeit_gesamt()
    flugzeiten_rechnen()
    $line = 1
    $minuten = 0
    $stunden = 0
    $stunden2 = 0
    For $a = 1 To 80
    Dim $time_array[105][6]
    $time_array[$line][0] = GUICtrlRead($array_inputs[$line][11]) ;Flug H
    $time_array[$line][1] = GUICtrlRead($array_inputs[$line][12]) ;Flug M
    $minuten = $time_array[$line][1] + $minuten
    If $minuten > 59 Then
    $minuten = $minuten - 60
    $stunden = $stunden + 1
    EndIf
    $stunden2 = $time_array[$line][0] + $stunden2
    $line = $line + 1
    Next
    $stunden2 = $stunden + $stunden2
    EndFunc

    [/autoit]


    hab jetzt mal meine Ansätze weggelassen aber ich hätte dann gerne das er z.B.
    $time[0] = Stunden bzw in diesem Fall $stunden2
    $time[1] = Minuten bzw in diesem Fall $minuten
    ist...

    Thx für jede Hilfe!!!

    MFG

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (17. Februar 2008 um 16:04)

  • naja in der Func das Array füllen und dann mit Return zurückgeben. Z.B. so:

    Spoiler anzeigen
    [autoit]


    #include <array.au3>
    Func test123() ;gibt ein Array zurück
    Dim $array[6]
    $array[0] = "Element0"
    $array[1] = "Element1"
    $array[2] = "Element2"
    $array[3] = "Element3"
    $array[4] = "Element4"
    $array[5] = "Element5"
    Return $array
    EndFunc
    _ArrayDisplay(test123())

    [/autoit]

    Funzt bei mir perfekt :rock:

    Edit: Oder meinste ein Array einfach erstellen? Dann einfach IN der Func

    [autoit]


    ;...
    Dim $array[ANZAHL DER ELEMENTE]
    $array[0] = "Element0"
    $array[1] = "Element0"
    ;...

    [/autoit]


    z.B.

    [autoit]


    ;...
    Dim $array[10] ;hab einfach 10 genommen. Evtl. reichen auf 3 oder so.
    $array[0] = $stunden2
    $array[1] = $minuten
    ;...

    [/autoit]

    Einmal editiert, zuletzt von Carsten8 (17. Februar 2008 um 16:02)

  • nee jetzt ^^ so einfach is das??? lol ey und ich probier seit 2 stunden dran rum mit den kompliziertesten sachen HAHA

    DANKE DIR :love:

    \\Edit so schauts jetzt aus :P funktioniert auch perfekt

    Spoiler anzeigen
    [autoit]

    Func test()
    $time = flugzeit_gesamt()
    MsgBox(0, "TEST", $time[0]&":"&$time[1])
    EndFunc

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

    Func flugzeit_gesamt()
    flugzeiten_rechnen()
    $line = 1
    $minuten = 0
    $stunden = 0
    $stunden2 = 0
    For $a = 1 To 80
    Dim $time_array[105][6]
    $time_array[$line][0] = GUICtrlRead($array_inputs[$line][11]) ;Flug H
    $time_array[$line][1] = GUICtrlRead($array_inputs[$line][12]) ;Flug M
    $minuten = $time_array[$line][1] + $minuten
    If $minuten > 59 Then
    $minuten = $minuten - 60
    $stunden = $stunden + 1
    EndIf
    $stunden2 = $time_array[$line][0] + $stunden2
    $line = $line + 1
    Next
    $stunden2 = $stunden + $stunden2
    Dim $zeit[2]
    $zeit[0] = $stunden2
    $zeit[1] = $minuten
    Return $zeit
    EndFunc

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (17. Februar 2008 um 16:05)

  • So sollte das gleiche dabei herauskommen,denke ich ... ;)

    Spoiler anzeigen
    [autoit]

    Func test()
    $time = flugzeit_gesamt()
    MsgBox(0, "TEST", $time[0]&":"&$time[1])
    EndFunc

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

    Func flugzeit_gesamt()
    flugzeiten_rechnen()
    Dim $zeit[2]
    For $i = 1 To 80
    $zeit[0] += GUICtrlRead($array_inputs[$i][11]) ;Flug H stunden
    $zeit[1] += GUICtrlRead($array_inputs[$i][12]) ;Flug M minuten
    If $zeit[1] > 59 Then
    $zeit[0] += 1
    $zeit[1] = 0
    EndIf
    Next
    Return $zeit
    EndFunc

    [/autoit]

    Gruß
    Greenhorn