Aufruf von Funktionen und Übergabe von Variablen

  • Hallo,

    ich habe ein Script, wo ich eine Funktion aufrufe und bestimmte Variablen mit übergeben möchte. Stehe noch auf dem Schlauch, weil ich es bisher noch nie gemacht habe.
    Hier mein Ansatz (Script ist gekürzt):

    Spoiler anzeigen
    [autoit]

    $rem = "REM "
    _ersteszeichen($rem)

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

    $echo = "echo "
    _ersteszeichen($echo)

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

    Func _ersteszeichen($rem, $echo)

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

    if $ersteszeichen = " " Then
    $fertig = StringTrimLeft ($ausgeben, 1);gibt den gekürzten String zurück
    FileWrite($cmdpfad, "was muss hierhin?" & $fertig & @CRLF)
    Else
    FileWrite($cmdpfad, "und hier?" & $ausgeben & @CRLF)
    EndIf
    EndIf
    EndFunc

    [/autoit]

    Edit:
    So ja eig. ganz einfach:

    [autoit]

    $test = "hallo du"
    _funktion($test)

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

    func _funktion($test)
    MsgBox(1, "hallo", $test)
    EndFunc

    [/autoit]

    Aber mehrere Variablen?

    Edit2: Momentchen, Denkfehler. Funktioniert zwar, aber... :pinch:

    2 Mal editiert, zuletzt von Scritch (19. April 2011 um 11:25)

  • [autoit]

    Func helloWorld($param1, $param2, $param3)
    MsgBox(0, $param1, $param2 & ' ' & $param3)
    EndFunc

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

    helloWorld('Hello', 'My ', 'World')

    [/autoit]
  • Jo, schön und gut. Was aber, wenn ich

    [autoit]

    helloWorld('Hello', 'My ')
    helloWorld('World')

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

    Func helloWorld($param1, $param2, $param3)
    MsgBox(0, $param1, $param2 & ' ' & $param3)
    EndFunc

    [/autoit]


    habe und das nacheinander anzeigen lassen möchte?

  • Wenn du Optionale Parameter haben willst, also entweder nur einen oder mehrere musst du Werte im Funktionskopf zuweisen:

    [autoit]


    test("hallo","name",1)
    test("hallo","name")
    test("hallo")

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

    func test($param1,$param2=-1,$param3=-1) ; Funktion muss immer mit param1 gerufen werden kann aber auch mit param1+param2+param3 gerufen werden

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

    if $param2 = -1 and $param3 = -1 then
    msgbox(0,"","Funktion wurde nur mit " & $param1 & " aufgerufen.")
    return
    endif

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

    if $param2 = -1 then
    msgbox(0,"","Funktion wurde mit " & $param1 & " und " & $param3 & " aufgerufen.")
    return
    endif

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

    if $param3 = -1 then
    msgbox(0,"","Funktion wurde mit " & $param1 & " und " & $param2 & " aufgerufen.")
    return
    endif

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

    if $param2 <> -1 and $param3 <> -1 then
    msgbox(0,"","Funktion wurde mit allen 3 Parametern aufgerufen: " & $param1 & "|" & $param2 & "|" & $param3)
    return
    endif

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

    endfunc

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