Schleifeenproblem

  • hi,

    Bei meiner Func soll dia angehängte ini in der Section 001 abgearbeitet werden. Leider wird die Schleife nur einmal durchlaufen. was ist an meinem Script falsch?

    Spoiler anzeigen
    [autoit]

    #include 'string.au3'
    #include 'File.au3'
    #include 'array.au3'
    #include 'date.au3'

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

    Opt("TrayIconDebug", 1)

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

    $vas = "C:\Datensicherung\CDR.ini"
    $var = IniReadSection("C:\Datensicherung\CDR.ini", "001")

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

    _zusammen()
    ;
    Func _zusammen()

    For $i = 1 To $var[0][0]
    MsgBox(4096, "", $var[$i][1])
    If FileExists(IniRead($vas, "002", $i, "NotFound") & _JahrMonatstring() & "\" & "*.cdr") Then
    If FileCopy(IniRead($vas, "002", $i, "NotFound") & _JahrMonatstring() & "\" & "*.cdr", IniRead($vas, "003", "1", "NotFound"), 1) = 1 Then
    Sleep(1500)
    Local $filelist = _FileListToArray(IniRead($vas, "003", "1", "NotFound"), "*.CDR"); Ordner in dem die ganzen .txt Dateien enthalten sind
    If IsArray($filelist) Then
    Local $sammlung = IniRead($vas, "003", "2", "NotFound") & $var[$i][1] & " " & _Monatsstring() & ".CDR"
    $destfile = FileOpen($sammlung, 10); Datei in der die anderen verbunden werden
    If $destfile <> -1 Then
    For $i = 1 To $filelist[0]
    MsgBox(0,"",IniRead($vas, "003", "2", "NotFound") & $filelist[$i],1)
    $temp = FileOpen(IniRead($vas, "003", "2", "NotFound") & $filelist[$i], 0)
    If $temp <> -1 Then
    if FileWrite($destfile, FileRead($temp) & @CRLF)= 1 Then FileClose($temp)
    EndIf
    Next
    FileClose($destfile)
    EndIf
    Sleep(15000)
    FileDelete(IniRead($vas, "003", "1", "NotFound"))

    EndIf
    EndIf
    EndIf
    Next
    EndFunc ;==>_zusammen
    ;
    Func _JahrMonatstring()
    If @MON = 1 Then
    $monat = 12
    $jahr = @YEAR - 1
    Return $jahr & "\" & $monat & " " & $jahr
    EndIf
    Return StringFormat("%02d", @MON - 1) & " / " & @YEAR
    EndFunc ;==>_JahrMonatstring
    ;
    Func _Monatsstring()
    If @MON = 1 Then
    $monat = 12
    $jahr = @YEAR - 1
    Return $monat & " " & $jahr
    EndIf
    Return StringFormat("%02d", @MON - 1) & " " & @YEAR
    EndFunc ;==>_Monatsstring

    [/autoit]

    mfg Taucher

    • Offizieller Beitrag

    Kleine Ursache - große Wirkung: 2 Schleifen, aber nur 1 Zähler ;)
    So sollte es klappen:

    Spoiler anzeigen
    [autoit]

    Func _zusammen()
    For $i = 1 To $var[0][0]
    MsgBox(4096, "", $var[$i][1])
    If FileExists(IniRead($vas, "002", $i, "NotFound") & _JahrMonatstring() & "\" & "*.cdr") Then
    If FileCopy(IniRead($vas, "002", $i, "NotFound") & _JahrMonatstring() & "\" & "*.cdr", IniRead($vas, "003", "1", "NotFound"), 1) = 1 Then
    Sleep(1500)
    Local $filelist = _FileListToArray(IniRead($vas, "003", "1", "NotFound"), "*.CDR"); Ordner in dem die ganzen .txt Dateien enthalten sind
    If IsArray($filelist) Then
    Local $sammlung = IniRead($vas, "003", "2", "NotFound") & $var[$i][1] & " " & _Monatsstring() & ".CDR"
    $destfile = FileOpen($sammlung, 10); Datei in der die anderen verbunden werden
    If $destfile <> -1 Then
    For $k = 1 To $filelist[0]
    MsgBox(0,"",IniRead($vas, "003", "2", "NotFound") & $filelist[$k],1)
    $temp = FileOpen(IniRead($vas, "003", "2", "NotFound") & $filelist[$k], 0)
    If $temp <> -1 Then
    if FileWrite($destfile, FileRead($temp) & @CRLF)= 1 Then FileClose($temp)
    EndIf
    Next
    FileClose($destfile)
    EndIf
    Sleep(15000)
    FileDelete(IniRead($vas, "003", "1", "NotFound"))

    EndIf
    EndIf
    EndIf
    Next
    EndFunc ;==>_zusammen

    [/autoit]