Arraywerte in Funktion verwenden

  • Hallo,

    ich steh ziemlich am Anfang mit meinen Kenntnissen bezüglich AutoIT und Programmieren allgemein, drum bitte nicht schimpfen, da ich denke, dass die Lösung des Problems einfacher ist als ich mir das vorstelle.

    Folgende Problematik:

    In einem Ordner befinden sich mehrere Ini Dateien.

    Aus denen Lese ich die bestimmte Werte aus, die dann in einem Array gespeichert werden. Nun möchte ich in einer neuen Funktion auf diese Werte zurückgreifen, aber irgendwie gelingt mir das nicht.

    Hier der Quellcode:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Dim allevariablen und so

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

    Global $ActualComputerIP[40], $ActualComputerName[40], $ActualComputerAdmin[40], $ActualComputerPass[40]
    Global $i, $j
    Global $IniFile[40]
    $IniDirectory = @ScriptDir & "\INI"
    $IniFiles = $IniDirectory & "\*.ini"
    $WsusSettingsFile = @ScriptDir & "\Tools\wsus.reg"

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

    ;----- IP, Namen und Logindaten des zu bearbeitenden Rechners herausfinden ------

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

    $search = FileFindFirstFile($IniDirectory & "\*.ini")
    $i = 1
    While 1
    $IniFile[$i] = FileFindNextFile($search)
    $i = $i + 1
    If @error Then ExitLoop
    WEnd

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

    For $j = 1 To $i - 2
    $ActualComputerIP[$j] = IniRead($IniDirectory & "\" & $IniFile[$j], "identity", "ip", "Kein solcher Eintrag")
    $ActualComputerName[$j] = IniRead($IniDirectory & "\" & $IniFile[$j], "identity", "pcname", "Kein solcher Eintrag")
    $ActualComputerAdmin[$j] = IniRead($IniDirectory & "\" & $IniFile[$j], "logon", "adminid", "Kein solcher Eintrag")
    $ActualComputerPass[$j] = IniRead($IniDirectory & "\" & $IniFile[$j], "logon", "adminpw", "Kein solcher Eintrag")
    Next
    FileClose($search)

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

    ;--- ENDE IP, Namen und Logindaten des zu bearbeitenden Rechners herausfinden ---

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

    ;------------------------------------Kopiert Dateien auf den Rechner -----------------------
    Func copyFile($FileToCopy)
    For $j = 1 To $i - 2
    DriveMapAdd("t:", "\\" & $ActualComputerIP[$j] & "\c$",0, $ActualComputerAdmin[$j], $ActualComputerPass[$j])
    $FileCopyStatus = FileCopy($FileToCopy, "t:\", 1)
    If $FileCopyStatus = 1 Then
    Call("writeStatusLog", $ActualComputerName[$j], "Kopieren der " & $FileToCopy, "1")
    Else
    If $FileCopyStatus = 0 Then
    Call("writeStatusLog", $ActualComputerName[$j], "Kopieren der " & $FileToCopy, "0")
    EndIf
    EndIf
    Next
    EndFunc
    ;------------------------------------Kopiert Dateien auf den Rechner -----------------------

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

    Call("copyFile", $WsusSettingsFile)

    [/autoit]

    Das Problem ist jetzt, lass ich das Einkapseln der Kopieraktion in eine Funktion weg, funktioniert es. Aber mit geht es leider nicht.

    Kann mir jemand auf die Sprünge helfen?

    Danke im Voraus, smoo