Variablen mit funktion übergeben

  • Hi,

    ich brauch mal eine Erklärung für so Begriffsstutzige wie mich.
    Ich habe zwei exe Dateien die ein Logfile befüllen sollen. Erstellt und befüllt wird das Logfile so:

    [autoit]

    #Include <File.au3>

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

    ;Muss wieder raus
    $FileName = @ScriptDir & "\Log\Logon_" & @YEAR & @MON & @MDAY & "_" & @HOUR & @MIN & @SEC & ".log"
    ;....

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

    Func _WriteLogData($Line)

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

    Local $FileCreateOK, $LinePrefix

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

    $LinePrefix = @YEAR & "." & @MON & "." & @MDAY & "/" & @HOUR & ":"& @MIN & ":" & @SEC & " | " & $Line

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

    if not FileExists($FileName) Then

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

    $FileCreateOK = _FileCreate($FileName)

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

    EndIf

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

    $LogFileID = FileOpen($FileName,1)

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

    FileWriteLine($LogFileID,$LinePrefix)

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

    FileClose($LogFileID)

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

    EndFunc

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

    Wenn ich jetzt die zweite exe ins LogFile schreiben lassen will muss die ja wissen dass es schon ein Logfile gibt.
    Mien Idee war jetzt eine eigene Funktion für die zweite exe die dann das Logfile der ersten befüllt.

    So in der Art

    [autoit]

    #Include <File.au3>

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

    Func _WriteMappingLogData($Line)

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

    $LogFileID = FileOpen($FileName,1)

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

    FileWriteLine($LogFileID,$LinePrefix)

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

    FileClose($LogFileID)

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

    EndFunc

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


    Aber wie gebe ich der zwieten Funktion den schon vorhandenen LogFile- Namen der ersten mit?

    Oder wo steht beschrieben wie ich variablen einem Funktionsaufruf mitgebe?

    Ist verständlich was ich will? ?( :D

  • Du könntest doch einfach in beiden Exe'n den gleichen Pfad angeben... :P

    Ne, also allgemein könntest du eine Textdatei oder eine Ini anlegen, in der du dann den derzeit verwendeten Pfad speicherst.

    Spoiler anzeigen
    [autoit]

    IniWrite
    IniRead

    [/autoit]


    Alternativ kannst du dafür auch die Registry nutzen (würde ich nur in ganz wichtigen Fällen machen).

    Spoiler anzeigen
    [autoit]

    RegWrite
    RegRead

    [/autoit]


    Falls die eine Exe von der anderen Exe gestartet wird, kannst du mit der Parameterübergabe den Pfad übergeben.

    Spoiler anzeigen
    [autoit]

    ; ...
    Global $sPath = @TempDir & '\logfile.txt'
    ShellExecute ('deine_exe.exe', $sPath)
    ; ...

    [/autoit]

    Der bzw. die übergebene(n) Parameter befindet/n sich dann in dem Array $CmdLine
    Auf Wunsch später mehr dazu. :P Komm darauf an, für welche Methode du dich entscheidest.