CPU Last steigt auf 100% obwohl das GUI noch nicht arbeiten muss.

  • Bin ein Neuling,
    aber habe das Problem, wenn ich mein GUI starte steigt die CPU Last gleich auf 100 % obwohl das GUI noch nichts abarbeitet bzw. einliest. Woran kann das liegen?

    • Offizieller Beitrag

    Ohne Code kann man dir da nicht helfen. Poste mal dein Script.

  • aber nicht lachen ...

    Spoiler anzeigen


    #include <File.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiEdit.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <GuiEdit.au3>
    #include <ProgressConstants.au3>
    #include <GUIComboBox.au3>
    ;~ #include <Math.au3>


    Opt("GUIOnEventMode", 1)
    Opt("GUICloseOnESC", 0)
    Global $logfile, $c_LCNoread, $c_IDNoread, $c_IFNoread, $aSchalen[1], $aRundenCounter
    #Region ### START Koda GUI section ### Form=D:\Software\Autoit\Scripte\Entwicklung\Koda_Form\CodeAnalyse.kxf

    $Form1_1_1 = GUICreate("CodeAnalyse", 1033, 247, 192, 124)
    GUISetFont(8, 400, 0, "Arial")
    GUISetBkColor(0x808080)
    ;~ $progressbar1 = GUICtrlCreateProgress(100,400, 200, 20)
    GUICtrlSetColor(-1, 32250); not working with Windows XP Style
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")


    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    $Label1 = GUICtrlCreateLabel("Pfad", 16, 32, 26, 18)
    ;~ $Pfad = GUICtrlCreateInput("", 60, 32, 425, 22)
    $Edit1 = GUICtrlCreateEdit("", 800, 32, 200, 200)
    ;~ $Pfad1 = GUICtrlCreateCombo("", 48, 24, 145, 25)

    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 248, 136, 217, 21);System
    $Input3 = GUICtrlCreateInput("", 472, 136, 217, 21);Datum
    $Input4 = GUICtrlCreateInput("", 24, 200, 217, 21);Leitcode
    $Input5 = GUICtrlCreateInput("", 248, 200, 217, 21);Identcode
    $Input6 = GUICtrlCreateInput("", 472, 200, 217, 21);Identifire
    $Input7 = GUICtrlCreateInput("", 24, 104, 663, 21);Statuszeile
    $Input8 = GUICtrlCreateInput("", 24, 168, 217, 21);Anzahl Datensätze
    $Input9 = GUICtrlCreateInput("", 24, 136, 217, 21);PZ Name
    $Input10 = GUICtrlCreateInput("", 248, 168, 217, 21);Norread
    GUICtrlSetColor(-1, 0xFF0000)

    $btn1 = GUICtrlCreateButton("Datenanalyse...", 520, 32, 100, 40, $BS_ICON)
    ;~ GUICtrlSetImage(-1, "shell32.dll", 23)
    GUICtrlSetOnEvent($btn1, "_checkFile")
    $btn2 = GUICtrlCreateButton("Logfile.", 650, 32, 100, 40, $BS_ICON)
    ;~ GUICtrlSetImage(-1, "shell32.dll", 23)
    GUICtrlSetOnEvent($btn2, "_openLog")
    ;Combobox füllen
    $Pfad = GUICtrlCreateCombo("", 48, 24, 245, 25)
    $var=_FileListToArray("c:\temp\","*rw.dat",1)
    ;~ _ArrayDisplay($var)
    For $i = 1 To $var[0]
    _GUICtrlComboBox_AddString($Pfad, $var[$i])
    next

    GUISetState(@SW_SHOW)


    #EndRegion ### END Koda GUI section ###
    Func _GUIEvents();==> Knöpfe Maximieren Minimieren Ende
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect
    EndFunc ;==>_GUIEvents
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch
    WEnd
    ; - Datei einlesen


    ;- Auswertung Beginn
    Func _checkFile()

    Dim $c_LCNoread = 0
    Dim $c_IDNoread = 0
    Dim $c_IFNoread = 0
    Dim $file = "c:\temp\"&GUICtrlRead($Pfad)
    Dim $fileline = _FileCountLines($file)
    Dim $aRecords
    Dim $c_Leerschale = 0
    ;-löschen der Feldinhalte
    _GUICtrlEdit_SetText($Edit1, "--- Start ---"&@crlf)
    _GUICtrlEdit_SetText($Input2, "")
    _GUICtrlEdit_SetText($Input3, "")
    _GUICtrlEdit_SetText($Input4, "")
    _GUICtrlEdit_SetText($Input5, "")
    _GUICtrlEdit_SetText($Input6, "")
    _GUICtrlEdit_SetText($Input7, "")
    _GUICtrlEdit_SetText($Input8, "")
    _GUICtrlEdit_SetText($Input9, "")
    _GUICtrlEdit_SetText($Input10, "")
    ;- starte Berechnung
    _GUICtrlEdit_InsertText($Input7, "Berechnung läuft ..... ")
    _FileReadToArray($file, $aRecords)


    $fileline = _FileCountLines($file)
    _GUICtrlEdit_InsertText($Input9, $aRecords[2])
    _GUICtrlEdit_InsertText($Input2, $aRecords[3])
    _GUICtrlEdit_InsertText($Input3, StringMid($aRecords[4], 6, 11))
    $filename = "PZ" & StringMid($aRecords[2], 7, 3) & "_SYS" & StringMid($aRecords[6], 10, 2) & "_" & StringMid($aRecords[4], 6, 11) & ".log"
    $logfile = ("c:\temp\" & $filename)
    _FileCreate($logfile)
    FileOpen($logfile, 1)
    ;~ $aRundenCounter[1]=0
    ;~ for $i = 6 to 500
    For $i = 6 To $fileline
    $str = StringSplit($aRecords[$i], ";")

    _ArrayAdd($aSchalen,$str[4])
    ;
    If $str[24] = "" And $str[43] = "" And $str[62] = "" Then
    $c_Leerschale = $c_Leerschale + 1
    _GUICtrlEdit_InsertText($Edit1, $str[1] & " Index=" & $str[4] & @CRLF)
    EndIf
    ;- Leitcode fehlt
    If $str[24] = "" Then
    $str[24] = "Code fehlt "
    $c_LCNoread = $c_LCNoread + 1

    EndIf
    ;- Identcode fehlt
    If $str[43] = "" Then
    $str[43] = "Code fehlt "
    $c_IDNoread = $c_IDNoread + 1
    EndIf
    ;- Identifire fehlt
    If $str[62] = "" Then
    $str[62] = "Code fehlt"
    $c_IFNoread = $c_IFNoread + 1
    EndIf
    ;~ _ArrayAdd($aSchalen,$str[4])
    ;~
    ; - Schreiben in Logfile

    FileWrite($logfile, "Zeit=" & $str[1] & " ;Index=" & $str[4] & ";LC=" & $str[24] &";IC=" & $str[43] & ";Code3=" & $str[62] & @CRLF)
    ;--- Runden zählen


    Next; Schleifen ende nächster Datensatz
    FileClose($logfile)
    $ReadGesamt =$fileline-6
    _GUICtrlEdit_InsertText($Input8, "Anzahl Datensätze = " & $fileline-6)
    _GUICtrlEdit_InsertText($Input4, "Anzahl ID-Code fehlt = " & $c_IDNoread& " % "&StringLeft(($c_IDNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input5, "Anzahl LC-Code fehlt = " & $c_LCNoread& " % "&StringLeft(($c_LCNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input6, "Anzahl IF-Code fehlt = " & $c_IFNoread& " % "&StringLeft(($c_IFNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input10, "Noread = " & $c_Leerschale& " % "&StringLeft(($c_Leerschale/$ReadGesamt)*100,5))
    _GUICtrlEdit_SetText($Input7, " - Fertig - " & "Logfile unter -> " & $logfile)

    EndFunc ;==>_checkFile

    Func _openLog()
    ;~ MsgBox("","",$logfile)
    Run("uedit32.exe" & " /c " & $logfile, "", @SW_MAXIMIZE)
    EndFunc ;==>_openLog

  • wir lachen doch nich ;)
    einfach

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    durch

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    sleep(50)
    WEnd

    [/autoit]


    ersetzen.
    Dann sollte es klappen

    Greez

    • Offizieller Beitrag

    Dir fehlt eine Arbeitsschleife:

    [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit]


    Da du im OnEventMode arbeitest, brauchst du diese Schleife um das Skript 'am Laufen' zu halten.
    Aber in der Func _GUIEvents verwendest du GuiGetMsg!! Beides gleichzeitig geht nicht. Und innerhalb einer Funktion GuiGetMsg anzuwenden ist nur in seltenen Fällen sinnvoll.

  • hoi,
    es geht tatsächlich. Jetzt steigt die CPU Last erst beim Starten des Skripts.
    Ich wundere mich nur , weil bis vor kurzen das Programm rasend schnell war. naja.....
    Jetzt benötigt es für ca 35000 Datensätze auf einmal weit mehr als 5 Min. Obwohl ich nur eine Text datein mit Zeilen zerlege.
    Kann es durch irgend ein Update (Windows ... Virenscanner ... ) auf einmal langsamer laufen ??

  • ich habe das Script inzwischen wieder abgebrochen, weil es immer noch in einer zähen Art und Weise läuft, also weit über 15 Min.
    ich hoffe ich finde noch eine Vorgänger version und kann den unterschied zur jetzigen Version finden.

    • Offizieller Beitrag

    Zeig nochmal dein Aktuelles Script. Benutze aber bitte einen Spoiler und die Autoit Quellcode Tags.

  • ich hoffe ich hab es jetzt richtig gemacht

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

    #include <File.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiEdit.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <GuiEdit.au3>
    #include <ProgressConstants.au3>
    #include <GUIComboBox.au3>
    ;~ #include <Math.au3>

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

    Opt("GUIOnEventMode", 1)
    Opt("GUICloseOnESC", 0)
    Global $logfile, $c_LCNoread, $c_IDNoread, $c_IFNoread, $aSchalen[1], $aRundenCounter
    #Region ### START Koda GUI section ### Form=D:\Software\Autoit\Scripte\Entwicklung\Koda_Form\CodeAnalyse.kxf

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

    $Form1_1_1 = GUICreate("CodeAnalyse", 1033, 247, 192, 124)
    GUISetFont(8, 400, 0, "Arial")
    GUISetBkColor(0x808080)
    ;~ $progressbar1 = GUICtrlCreateProgress(100,400, 200, 20)
    GUICtrlSetColor(-1, 32250); not working with Windows XP Style
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")

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

    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    $Label1 = GUICtrlCreateLabel("Pfad", 16, 32, 26, 18)
    ;~ $Pfad = GUICtrlCreateInput("", 60, 32, 425, 22)
    $Edit1 = GUICtrlCreateEdit("", 800, 32, 200, 200)
    ;~ $Pfad1 = GUICtrlCreateCombo("", 48, 24, 145, 25)

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

    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 248, 136, 217, 21);System
    $Input3 = GUICtrlCreateInput("", 472, 136, 217, 21);Datum
    $Input4 = GUICtrlCreateInput("", 24, 200, 217, 21);Leitcode
    $Input5 = GUICtrlCreateInput("", 248, 200, 217, 21);Identcode
    $Input6 = GUICtrlCreateInput("", 472, 200, 217, 21);Identifire
    $Input7 = GUICtrlCreateInput("", 24, 104, 663, 21);Statuszeile
    $Input8 = GUICtrlCreateInput("", 24, 168, 217, 21);Anzahl Datensätze
    $Input9 = GUICtrlCreateInput("", 24, 136, 217, 21);PZ Name
    $Input10 = GUICtrlCreateInput("", 248, 168, 217, 21);Norread
    GUICtrlSetColor(-1, 0xFF0000)

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

    $btn1 = GUICtrlCreateButton("Datenanalyse...", 520, 32, 100, 40, $BS_ICON)
    ;~ GUICtrlSetImage(-1, "shell32.dll", 23)
    GUICtrlSetOnEvent($btn1, "_checkFile")
    $btn2 = GUICtrlCreateButton("Logfile.", 650, 32, 100, 40, $BS_ICON)
    ;~ GUICtrlSetImage(-1, "shell32.dll", 23)
    GUICtrlSetOnEvent($btn2, "_openLog")
    ;Combobox füllen
    $Pfad = GUICtrlCreateCombo("", 48, 24, 245, 25)
    $var=_FileListToArray("c:\temp\","*rw.dat",1)
    ;~ _ArrayDisplay($var)
    For $i = 1 To $var[0]
    _GUICtrlComboBox_AddString($Pfad, $var[$i])
    next

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

    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###
    Func _GUIEvents();==> Knöpfe Maximieren Minimieren Ende
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect
    EndFunc ;==>_GUIEvents
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd
    ; - Datei einlesen

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

    ;- Auswertung Beginn
    Func _checkFile()

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

    Dim $c_LCNoread = 0
    Dim $c_IDNoread = 0
    Dim $c_IFNoread = 0
    Dim $file = "c:\temp\"&GUICtrlRead($Pfad)
    Dim $fileline = _FileCountLines($file)
    Dim $aRecords
    Dim $c_Leerschale = 0
    ;-löschen der Feldinhalte
    _GUICtrlEdit_SetText($Edit1, "--- Start ---"&@crlf)
    _GUICtrlEdit_SetText($Input2, "")
    _GUICtrlEdit_SetText($Input3, "")
    _GUICtrlEdit_SetText($Input4, "")
    _GUICtrlEdit_SetText($Input5, "")
    _GUICtrlEdit_SetText($Input6, "")
    _GUICtrlEdit_SetText($Input7, "")
    _GUICtrlEdit_SetText($Input8, "")
    _GUICtrlEdit_SetText($Input9, "")
    _GUICtrlEdit_SetText($Input10, "")
    ;- starte Berechnung
    _GUICtrlEdit_InsertText($Input7, "Berechnung läuft ..... ")
    _FileReadToArray($file, $aRecords)

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

    $fileline = _FileCountLines($file)
    _GUICtrlEdit_InsertText($Input9, $aRecords[2])
    _GUICtrlEdit_InsertText($Input2, $aRecords[3])
    _GUICtrlEdit_InsertText($Input3, StringMid($aRecords[4], 6, 11))
    $filename = "PZ" & StringMid($aRecords[2], 7, 3) & "_SYS" & StringMid($aRecords[6], 10, 2) & "_" & StringMid($aRecords[4], 6, 11) & ".log"
    $logfile = ("c:\temp\" & $filename)
    _FileCreate($logfile)
    FileOpen($logfile, 1)
    ;~ $aRundenCounter[1]=0
    ;~ for $i = 6 to 500
    For $i = 6 To $fileline
    $str = StringSplit($aRecords[$i], ";")

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

    _ArrayAdd($aSchalen,$str[4])
    ;
    If $str[24] = "" And $str[43] = "" And $str[62] = "" Then
    $c_Leerschale = $c_Leerschale + 1
    _GUICtrlEdit_InsertText($Edit1, $str[1] & " Index=" & $str[4] & @CRLF)
    EndIf
    ;- Leitcode fehlt
    If $str[24] = "" Then
    $str[24] = "Code fehlt "
    $c_LCNoread = $c_LCNoread + 1

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

    EndIf
    ;- Identcode fehlt
    If $str[43] = "" Then
    $str[43] = "Code fehlt "
    $c_IDNoread = $c_IDNoread + 1
    EndIf
    ;- Identifire fehlt
    If $str[62] = "" Then
    $str[62] = "Code fehlt"
    $c_IFNoread = $c_IFNoread + 1
    EndIf
    ;~ _ArrayAdd($aSchalen,$str[4])
    ;~
    ; - Schreiben in Logfile

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

    FileWrite($logfile, "Zeit=" & $str[1] & " ;Index=" & $str[4] & ";LC=" & $str[24] &";IC=" & $str[43] & ";Code3=" & $str[62] & @CRLF)
    ;--- Runden zählen

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

    Next; Schleifen ende nächster Datensatz
    FileClose($logfile)
    $ReadGesamt =$fileline-6
    _GUICtrlEdit_InsertText($Input8, "Anzahl Datensätze = " & $fileline-6)
    _GUICtrlEdit_InsertText($Input4, "Anzahl ID-Code fehlt = " & $c_IDNoread& " % "&StringLeft(($c_IDNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input5, "Anzahl LC-Code fehlt = " & $c_LCNoread& " % "&StringLeft(($c_LCNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input6, "Anzahl IF-Code fehlt = " & $c_IFNoread& " % "&StringLeft(($c_IFNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input10, "Noread = " & $c_Leerschale& " % "&StringLeft(($c_Leerschale/$ReadGesamt)*100,5))
    _GUICtrlEdit_SetText($Input7, " - Fertig - " & "Logfile unter -> " & $logfile)

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

    EndFunc ;==>_checkFile

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

    Func _openLog()
    ;~ MsgBox("","",$logfile)
    Run("uedit32.exe" & " /c " & $logfile, "", @SW_MAXIMIZE)
    EndFunc ;==>_openLog

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

    Einmal editiert, zuletzt von mm4040 (15. Dezember 2009 um 19:19)

    • Offizieller Beitrag

    Probier es mal so:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiEdit.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #include <GuiEdit.au3>
    #include <ProgressConstants.au3>
    #include <GUIComboBox.au3>
    ;~ #include <Math.au3>

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

    Opt("GUIOnEventMode", 1)
    Opt("GUICloseOnESC", 0)
    Global $logfile, $c_LCNoread, $c_IDNoread, $c_IFNoread, $aSchalen[1], $aRundenCounter
    #Region ### START Koda GUI section ### Form=D:\Software\Autoit\Scripte\Entwicklung\Koda_Form\CodeAnalyse.kxf

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

    $Form1_1_1 = GUICreate("CodeAnalyse", 1033, 247, 192, 124)
    GUISetFont(8, 400, 0, "Arial")
    GUISetBkColor(0x808080)
    ;~ $progressbar1 = GUICtrlCreateProgress(100,400, 200, 20)
    GUICtrlSetColor(-1, 32250); not working with Windows XP Style
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")

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

    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    $Label1 = GUICtrlCreateLabel("Pfad", 16, 32, 26, 18)
    ;~ $Pfad = GUICtrlCreateInput("", 60, 32, 425, 22)
    $Edit1 = GUICtrlCreateEdit("", 800, 32, 200, 200)
    ;~ $Pfad1 = GUICtrlCreateCombo("", 48, 24, 145, 25)

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

    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("", 248, 136, 217, 21);System
    $Input3 = GUICtrlCreateInput("", 472, 136, 217, 21);Datum
    $Input4 = GUICtrlCreateInput("", 24, 200, 217, 21);Leitcode
    $Input5 = GUICtrlCreateInput("", 248, 200, 217, 21);Identcode
    $Input6 = GUICtrlCreateInput("", 472, 200, 217, 21);Identifire
    $Input7 = GUICtrlCreateInput("", 24, 104, 663, 21);Statuszeile
    $Input8 = GUICtrlCreateInput("", 24, 168, 217, 21);Anzahl Datensätze
    $Input9 = GUICtrlCreateInput("", 24, 136, 217, 21);PZ Name
    $Input10 = GUICtrlCreateInput("", 248, 168, 217, 21);Norread
    GUICtrlSetColor(-1, 0xFF0000)

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

    $btn1 = GUICtrlCreateButton("Datenanalyse...", 520, 32, 100, 40, $BS_ICON)
    ;~ GUICtrlSetImage(-1, "shell32.dll", 23)
    GUICtrlSetOnEvent($btn1, "_checkFile")
    $btn2 = GUICtrlCreateButton("Logfile.", 650, 32, 100, 40, $BS_ICON)
    ;~ GUICtrlSetImage(-1, "shell32.dll", 23)
    GUICtrlSetOnEvent($btn2, "_openLog")
    ;Combobox füllen
    $Pfad = GUICtrlCreateCombo("", 48, 24, 245, 25)
    $var=_FileListToArray("c:\temp\","*rw.dat",1)
    ;~ _ArrayDisplay($var)
    For $i = 1 To $var[0]
    _GUICtrlComboBox_AddString($Pfad, $var[$i])
    next

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

    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###
    Func _GUIEvents();==> Knöpfe Maximieren Minimieren Ende
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect
    EndFunc ;==>_GUIEvents
    While 1
    Sleep(50)
    WEnd
    ; - Datei einlesen

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

    ;- Auswertung Beginn
    Func _checkFile()

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

    Dim $c_LCNoread = 0
    Dim $c_IDNoread = 0
    Dim $c_IFNoread = 0
    Dim $file = "c:\temp\"&GUICtrlRead($Pfad)
    Dim $fileline = _FileCountLines($file)
    Dim $aRecords
    Dim $c_Leerschale = 0
    ;-löschen der Feldinhalte
    _GUICtrlEdit_SetText($Edit1, "--- Start ---"&@crlf)
    _GUICtrlEdit_SetText($Input2, "")
    _GUICtrlEdit_SetText($Input3, "")
    _GUICtrlEdit_SetText($Input4, "")
    _GUICtrlEdit_SetText($Input5, "")
    _GUICtrlEdit_SetText($Input6, "")
    _GUICtrlEdit_SetText($Input7, "")
    _GUICtrlEdit_SetText($Input8, "")
    _GUICtrlEdit_SetText($Input9, "")
    _GUICtrlEdit_SetText($Input10, "")
    ;- starte Berechnung
    _GUICtrlEdit_InsertText($Input7, "Berechnung läuft ..... ")
    _FileReadToArray($file, $aRecords)

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

    $fileline = _FileCountLines($file)
    _GUICtrlEdit_InsertText($Input9, $aRecords[2])
    _GUICtrlEdit_InsertText($Input2, $aRecords[3])
    _GUICtrlEdit_InsertText($Input3, StringMid($aRecords[4], 6, 11))
    $filename = "PZ" & StringMid($aRecords[2], 7, 3) & "_SYS" & StringMid($aRecords[6], 10, 2) & "_" & StringMid($aRecords[4], 6, 11) & ".log"
    $logfile = ("c:\temp\" & $filename)
    _FileCreate($logfile)
    FileOpen($logfile, 1)
    ;~ $aRundenCounter[1]=0
    ;~ for $i = 6 to 500
    For $i = 6 To $fileline
    $str = StringSplit($aRecords[$i], ";")

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

    _ArrayAdd($aSchalen,$str[4])
    ;
    If $str[24] = "" And $str[43] = "" And $str[62] = "" Then
    $c_Leerschale = $c_Leerschale + 1
    _GUICtrlEdit_InsertText($Edit1, $str[1] & " Index=" & $str[4] & @CRLF)
    EndIf
    ;- Leitcode fehlt
    If $str[24] = "" Then
    $str[24] = "Code fehlt "
    $c_LCNoread = $c_LCNoread + 1

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

    EndIf
    ;- Identcode fehlt
    If $str[43] = "" Then
    $str[43] = "Code fehlt "
    $c_IDNoread = $c_IDNoread + 1
    EndIf
    ;- Identifire fehlt
    If $str[62] = "" Then
    $str[62] = "Code fehlt"
    $c_IFNoread = $c_IFNoread + 1
    EndIf
    ;~ _ArrayAdd($aSchalen,$str[4])
    ;~
    ; - Schreiben in Logfile

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

    FileWrite($logfile, "Zeit=" & $str[1] & " ;Index=" & $str[4] & ";LC=" & $str[24] &";IC=" & $str[43] & ";Code3=" & $str[62] & @CRLF)
    ;--- Runden zählen

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

    Next; Schleifen ende nächster Datensatz
    FileClose($logfile)
    $ReadGesamt =$fileline-6
    _GUICtrlEdit_InsertText($Input8, "Anzahl Datensätze = " & $fileline-6)
    _GUICtrlEdit_InsertText($Input4, "Anzahl ID-Code fehlt = " & $c_IDNoread& " % "&StringLeft(($c_IDNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input5, "Anzahl LC-Code fehlt = " & $c_LCNoread& " % "&StringLeft(($c_LCNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input6, "Anzahl IF-Code fehlt = " & $c_IFNoread& " % "&StringLeft(($c_IFNoread/$ReadGesamt)*100,5))
    _GUICtrlEdit_InsertText($Input10, "Noread = " & $c_Leerschale& " % "&StringLeft(($c_Leerschale/$ReadGesamt)*100,5))
    _GUICtrlEdit_SetText($Input7, " - Fertig - " & "Logfile unter -> " & $logfile)

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

    EndFunc ;==>_checkFile

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

    Func _openLog()
    ;~ MsgBox("","",$logfile)
    Run("uedit32.exe" & " /c " & $logfile, "", @SW_MAXIMIZE)
    EndFunc ;==>_openLog

    [/autoit]