Chekbox in ini eintragen und Uhrzeit....

  • peethebee
    jup weiß ich ;)
    wollte es nur zum erklären erstmal anders machen

    @subzero
    wie ich gesagt habe lässt sich das ganze auf 5 zeilen kürzen
    kannst deine inireadfunktion löschen und bei zeile 70 (also vor der while schleife) das einfügen:

    [autoit]

    $ini = IniRead(@ScriptDir & '\save.ini', "sicherung", "tage", 0)
    For $i = 6 To 0 step - 1
    If BitAND($ini, 2^$i) Then
    GUICtrlSetState($arCheckBox[$i], $GUI_CHECKED)
    EndIf
    Next

    [/autoit]

    oder du tust das ganze in ne funktion, dann kannst dus öfters aufrufen ;)

  • Hey,

    ini auslesen Wochntag funktioniert nicht so richtig was mache ich falsch ??

    und das er nur den Letzen eintrag aus der listview in die INI einträgt das habe ich auch noch ?? ?(

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <DateTimeConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <File.au3>
    Local $arCheckBox[7]
    Global $ini = 'save.ini'
    Global $path = @ScriptDir & '\lastsave'
    Global $hfile = @ScriptDir & '\lastsave.log'

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Sicherung", 918, 457, 219, 121)
    $Tab1 = GUICtrlCreateTab(16, 24, 873, 417)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("Backup")
    $arCheckBox[6] = GUICtrlCreateCheckbox("Montag", 24, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[5] = GUICtrlCreateCheckbox("Dienstag", 88, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[4] = GUICtrlCreateCheckbox("Mittwoch", 152, 361, 65, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[3] = GUICtrlCreateCheckbox("Donnerstag", 224, 361, 73, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[2] = GUICtrlCreateCheckbox("Freitag", 304, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[1] = GUICtrlCreateCheckbox("Samstag", 368, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[0] = GUICtrlCreateCheckbox("Sonntag", 432, 361, 65, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Date1 = GUICtrlCreateDate("2009/09/21 13:19:57", 24, 393, 170, 21)
    $hListView = GUICtrlCreateListView("Quelle|Ziel", 24, 73, 850, 246)
    GUICtrlSendMsg(-1, 0x101E, 0, 50)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $add = GUICtrlCreateButton("+", 24, 321, 75, 25)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $del = GUICtrlCreateButton("-", 104, 321, 75, 25)
    GUICtrlSetFont(-2, 20, 400, 0, "Arial")
    $Task_Plannen = GUICtrlCreateButton("Task_Planen", 408, 385, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Quelle = GUICtrlCreateLabel("Quelle", 24, 49, 34, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Sichern = GUICtrlCreateButton("Sichern", 184, 321, 75, 25)
    GUICtrlSetFont(-1, 15, 400, 0, "Arial")
    $TabSheet2 = GUICtrlCreateTabItem("Restore")
    $Input2 = GUICtrlCreateInput("Input1", 31, 81, 353, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Restore_Ordner = GUICtrlCreateLabel("Restore_Ordner", 24, 57, 79, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Quellpfadzeigen = GUICtrlCreateButton("Quellpfadzeigen", 392, 129, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $TreeView1 = GUICtrlCreateTreeView(40, 137, 345, 241)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Wiederherstellen = GUICtrlCreateButton("Wiederherstellen", 392, 353, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Button1 = GUICtrlCreateButton("suchen", 392, 81, 43, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Verfuegbare_sicherungen = GUICtrlCreateLabel("Verfuegbare_sicherungen", 48, 113, 126, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Offnen = GUICtrlCreateButton("Offnen", 392, 321, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)

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

    ;if FileExists(@ScriptDir & '\lastsave.log') Then
    ; _format()
    ; EndIf
    If FileExists(@ScriptDir & '\lastsave.log') Then
    $ini = IniRead(@ScriptDir & '\save.ini', "sicherung", "tage", 0)
    For $i = 6 To 0 step - 1
    If BitAND($ini, 2^$i) Then
    GUICtrlSetState($arCheckBox[$i], $GUI_CHECKED)
    EndIf
    Next

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

    EndIf
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $add
    $sfolder = FileSelectFolder("Wählen den zu Sichernden Ordner:", 'c:')

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

    ;if @error Then Return
    $dfolder = FileSelectFolder("Wählen Sie den Ziel Ordner:", 'c:')
    GUICtrlCreateListViewItem($sfolder & '|' & $dfolder, $hListView)
    ;if @error Then Return
    $hWnd = $hListView
    If FileExists($path & ".log") Then FileDelete($path & ".log")
    FileWrite($path & ".log", _GUICtrlListView_Export($hWnd, 1, ','))

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

    Case $del
    _GUICtrlListView_DeleteItemsSelected($hListView)
    $hWnd = $hListView
    If FileExists($path & ".log") Then FileDelete($path & ".log")
    FileWrite($path & ".log", _GUICtrlListView_Export($hWnd, 1, ','))
    Case $Sichern
    _xcopy()
    Case $Task_Plannen
    _iniwrite()

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

    EndSwitch
    WEnd

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

    Func _iniwrite()

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

    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite($ini, 'Backup', 'Quelle', $var1)
    IniWrite($ini, 'Backup', 'Ziel', $var2)
    Next
    ; Next

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

    IniWrite($ini, 'Wochentag', 'tage', $checked)
    EndFunc ;==>_iniwrite

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

    Func _iniread()
    #cs Muster-INI
    [sicherung]
    tage=42
    #ce
    ; 2 + 8 + 32 = Mo/Mi/Fr

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

    ; aus INI lesen
    Local $savedays = IniRead($ini, 'sicherung', 'tage', 0)

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

    ; prüfen ob aktueller Tag für Sicherung vorgesehen ist
    If BitAND($savedays, 2 ^ (@WDAY - 1)) Then
    ; starte Sicherung
    EndIf
    EndFunc ;==>_iniread

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

    Func _GUICtrlListView_Export($hWnd, $exType = 0, $Delim = Default) ; $exType=0 Array / $exType=1 String
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    Local $row = _GUICtrlListView_GetItemCount($hWnd)
    If $exType Then
    If $Delim <> Default Then Local $oldDelim = Opt('GUIDataSeparatorChar', $Delim)
    Local $sOut = ''
    For $i = 0 To $row - 1
    $sOut &= _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
    Next
    If $Delim <> Default Then Opt('GUIDataSeparatorChar', $oldDelim)
    Return $sOut
    EndIf
    Local $col = _GUICtrlListView_GetColumnCount($hWnd)
    Local $aOut[$row][$col]
    If $col = 1 Then
    ReDim $aOut[$row]
    For $i = 0 To UBound($aOut) - 1
    $aOut[$i] = _GUICtrlListView_GetItemText($hWnd, $i)
    Next
    Return $aOut
    EndIf
    For $i = 0 To UBound($aOut) - 1
    For $j = 0 To UBound($aOut, 2) - 1
    $aOut[$i][$j] = _GUICtrlListView_GetItemText($hWnd, $i, $j)
    Next
    Next
    Return $aOut
    EndFunc ;==>_GUICtrlListView_Export

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

    Func _Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($hListView) ; Das Handle eben noch bestimmen (s. Anfang des Threads)

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

    Local $sItem
    ; $FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    Local $hfile = FileOpen(@ScriptDir & '\lastsave.log', 0) ; Datei zum lesen öffnen
    If $hfile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($hListView) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hfile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($hListView) ; Listview wieder freigeben
    FileClose($hfile) ; Datei schließen
    EndIf
    EndFunc ;==>_Load

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

    Func CopyWithProgress($srcDir, $destDir)
    If StringRight($srcDir, 1) = "\" Then $srcDir = StringLeft($srcDir, StringLen($srcDir) - 1)
    If StringRight($destDir, 1) <> "\" Then $destDir = $destDir & "\"
    If Not FileExists($destDir) Then DirCreate($destDir)
    $srcSize = DirGetSize($srcDir, 1)
    $1_percent = $srcSize[0] / 100
    ;Run('XCOPY "'& $srcDir & '" "' & $destDir & '" /D /S /E /V /C /H /R /O /Y')

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

    $lastpath = StringTrimLeft($srcDir, StringInStr($srcDir, "\", "", -1))
    $TSDIS = Run(@ComSpec & " /c " & @SystemDir & '\xcopy ' & $srcDir & ' ' & $destDir & $lastpath & '\ /D /S /E /V /C /H /R /Y', "", @SW_HIDE)
    ProgressOn('Copy ' & $srcDir & ' ' & $destDir & $lastpath, $1_percent & "%", "")
    Do
    $destSize = DirGetSize($destDir & $lastpath, 1)
    ProgressSet(Round($destSize[0] / $1_percent, 2), Round($destSize[0] / (1024 * 1024), 2) & " MB of " & Round($srcSize[0] / (1024 * 1024), 2) & " MB Kopiert" & @CRLF _
    & $destSize[1] & " von " & $srcSize[1] & " Dateien Kopiert." & @CRLF _
    & $destSize[2] & " von " & $srcSize[2] & " Ordner Kopiert.", Round($destSize[0] / $1_percent, 2) & "% - Fertig!")
    Sleep(200)
    Until $destSize[0] >= $srcSize[0]
    ProgressOff()
    EndFunc ;==>CopyWithProgress

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

    Func _xcopy()
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    CopyWithProgress($var1, $var2)

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

    Next

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

    EndFunc ;==>_xcopy

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

    Func _format()

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

    Dim $sFilePath = @ScriptDir & '\lastsave.log'
    Dim $outFile = @ScriptDir & '\lastsave.log'
    Dim $aArray
    _FileReadToArray($sFilePath, $aArray) ; datei in Array lesen

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

    For $i = 1 To $aArray[0] ; zeilenweise durchgehen

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

    $aArray[$i] = StringReplace($aArray[$i], ',', '|') ; der String wird ersetzt durch den String mit der Eingabe
    Next

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

    If FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
    _FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

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

    EndFunc ;==>_format

    [/autoit]


    Eine frage noch nebenbei wie lese ich am elegantesten die ini um daraus Listview einträge zu erzeugen ?
    Also: Quelle|Ziel


    So sieht meine ini aus:

    [Backup]
    Quelle=C:\xxxx
    Ziel=C:\xxx
    [Wochentag]
    tage=0

    ich habe immer den wert Tage=0??

    Hier mein Aktuelles Script:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <DateTimeConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <File.au3>
    Local $arCheckBox[7]
    Global $ini = 'save.ini'
    Global $path = @ScriptDir & '\lastsave'
    Global $hfile = @ScriptDir & '\lastsave.log'

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Sicherung", 918, 457, 219, 121)
    $Tab1 = GUICtrlCreateTab(16, 24, 873, 417)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("Backup")
    $arCheckBox[6] = GUICtrlCreateCheckbox("Montag", 24, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[5] = GUICtrlCreateCheckbox("Dienstag", 88, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[4] = GUICtrlCreateCheckbox("Mittwoch", 152, 361, 65, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[3] = GUICtrlCreateCheckbox("Donnerstag", 224, 361, 73, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[2] = GUICtrlCreateCheckbox("Freitag", 304, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[1] = GUICtrlCreateCheckbox("Samstag", 368, 361, 57, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $arCheckBox[0] = GUICtrlCreateCheckbox("Sonntag", 432, 361, 65, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Time = GUICtrlCreateDate('15:00:00', 24, 393, 70, 21, $DTS_TIMEFORMAT)
    ;GUICtrlCreateDate('00:00:00', 10, 10, 100, 30, $DTS_TIMEFORMAT)

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

    $hListView = GUICtrlCreateListView("Quelle|Ziel", 24, 73, 850, 246)
    GUICtrlSendMsg(-1, 0x101E, 0, 50)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $add = GUICtrlCreateButton("+", 24, 321, 75, 25)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $del = GUICtrlCreateButton("-", 104, 321, 75, 25)
    GUICtrlSetFont(-2, 20, 400, 0, "Arial")
    $Task_Plannen = GUICtrlCreateButton("Task_Planen", 408, 385, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Quelle = GUICtrlCreateLabel("Quelle", 24, 49, 34, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Sichern = GUICtrlCreateButton("Sichern", 184, 321, 75, 25)
    GUICtrlSetFont(-1, 15, 400, 0, "Arial")
    $TabSheet2 = GUICtrlCreateTabItem("Restore")
    $Input2 = GUICtrlCreateInput("Input1", 31, 81, 353, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Restore_Ordner = GUICtrlCreateLabel("Restore_Ordner", 24, 57, 79, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Quellpfadzeigen = GUICtrlCreateButton("Quellpfadzeigen", 392, 129, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $TreeView1 = GUICtrlCreateTreeView(40, 137, 345, 241)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Wiederherstellen = GUICtrlCreateButton("Wiederherstellen", 392, 353, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Button1 = GUICtrlCreateButton("suchen", 392, 81, 43, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Verfuegbare_sicherungen = GUICtrlCreateLabel("Verfuegbare_sicherungen", 48, 113, 126, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Offnen = GUICtrlCreateButton("Offnen", 392, 321, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)

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

    ;if FileExists(@ScriptDir & '\lastsave.log') Then
    ; _format()
    ; EndIf
    If FileExists(@ScriptDir & '\save.ini') Then
    $ini = IniRead(@ScriptDir & '\save.ini', "Wochentag", "tage", 0)
    For $i = 6 To 0 Step -1
    If BitAND($ini, 2 ^ $i) Then
    GUICtrlSetState($arCheckBox[$i], $GUI_CHECKED)
    EndIf
    Next

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

    EndIf
    #EndRegion ### END Koda GUI section ###

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

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

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

    Exit
    Case $add
    $sfolder = FileSelectFolder("Wählen den zu Sichernden Ordner:", 'c:')

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

    ;if @error Then Return
    $dfolder = FileSelectFolder("Wählen Sie den Ziel Ordner:", 'c:')
    GUICtrlCreateListViewItem($sfolder & '|' & $dfolder, $hListView)
    ;if @error Then Return
    $hWnd = $hListView
    If FileExists($path & ".log") Then FileDelete($path & ".log")
    FileWrite($path & ".log", _GUICtrlListView_Export($hWnd, 1, ','))

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

    Case $del
    _GUICtrlListView_DeleteItemsSelected($hListView)
    $hWnd = $hListView
    If FileExists($path & ".log") Then FileDelete($path & ".log")
    FileWrite($path & ".log", _GUICtrlListView_Export($hWnd, 1, ','))
    Case $Sichern
    _xcopy()
    Case $Task_Plannen
    _iniwrite()

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

    EndSwitch
    WEnd

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

    Func _iniwrite()

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

    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite($ini, 'Backup', 'Quelle', $var1)
    IniWrite($ini, 'Backup', 'Ziel', $var2)
    Next
    ; Next
    IniWrite($ini, 'Wochentag', 'tage', $checked)

    IniWrite($ini, 'Startzeit', 'Uhr', $Time)

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

    EndFunc ;==>_iniwrite

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

    Func _iniread()
    #cs Muster-INI
    [sicherung]
    tage=42
    #ce
    ; 2 + 8 + 32 = Mo/Mi/Fr

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

    ; aus INI lesen
    Local $savedays = IniRead($ini, 'sicherung', 'tage', 0)

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

    ; prüfen ob aktueller Tag für Sicherung vorgesehen ist
    If BitAND($savedays, 2 ^ (@WDAY - 1)) Then
    ; starte Sicherung
    EndIf
    EndFunc ;==>_iniread

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

    Func _GUICtrlListView_Export($hWnd, $exType = 0, $Delim = Default) ; $exType=0 Array / $exType=1 String
    If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
    Local $row = _GUICtrlListView_GetItemCount($hWnd)
    If $exType Then
    If $Delim <> Default Then Local $oldDelim = Opt('GUIDataSeparatorChar', $Delim)
    Local $sOut = ''
    For $i = 0 To $row - 1
    $sOut &= _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
    Next
    If $Delim <> Default Then Opt('GUIDataSeparatorChar', $oldDelim)
    Return $sOut
    EndIf
    Local $col = _GUICtrlListView_GetColumnCount($hWnd)
    Local $aOut[$row][$col]
    If $col = 1 Then
    ReDim $aOut[$row]
    For $i = 0 To UBound($aOut) - 1
    $aOut[$i] = _GUICtrlListView_GetItemText($hWnd, $i)
    Next
    Return $aOut
    EndIf
    For $i = 0 To UBound($aOut) - 1
    For $j = 0 To UBound($aOut, 2) - 1
    $aOut[$i][$j] = _GUICtrlListView_GetItemText($hWnd, $i, $j)
    Next
    Next
    Return $aOut
    EndFunc ;==>_GUICtrlListView_Export

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

    Func _Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($hListView) ; Das Handle eben noch bestimmen (s. Anfang des Threads)

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

    Local $sItem
    ; $FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    Local $hfile = FileOpen(@ScriptDir & '\lastsave.log', 0) ; Datei zum lesen öffnen
    If $hfile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($hListView) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hfile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($hListView) ; Listview wieder freigeben
    FileClose($hfile) ; Datei schließen
    EndIf
    EndFunc ;==>_Load

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

    Func CopyWithProgress($srcDir, $destDir)
    If StringRight($srcDir, 1) = "\" Then $srcDir = StringLeft($srcDir, StringLen($srcDir) - 1)
    If StringRight($destDir, 1) <> "\" Then $destDir = $destDir & "\"
    If Not FileExists($destDir) Then DirCreate($destDir)
    $srcSize = DirGetSize($srcDir, 1)
    $1_percent = $srcSize[0] / 100
    ;Run('XCOPY "'& $srcDir & '" "' & $destDir & '" /D /S /E /V /C /H /R /O /Y')

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

    $lastpath = StringTrimLeft($srcDir, StringInStr($srcDir, "\", "", -1))
    $TSDIS = Run(@ComSpec & " /c " & @SystemDir & '\xcopy ' & $srcDir & ' ' & $destDir & $lastpath & '\ /D /S /E /V /C /H /R /Y', "", @SW_HIDE)
    ProgressOn('Copy ' & $srcDir & ' ' & $destDir & $lastpath, $1_percent & "%", "")
    Do
    $destSize = DirGetSize($destDir & $lastpath, 1)
    ProgressSet(Round($destSize[0] / $1_percent, 2), Round($destSize[0] / (1024 * 1024), 2) & " MB of " & Round($srcSize[0] / (1024 * 1024), 2) & " MB Kopiert" & @CRLF _
    & $destSize[1] & " von " & $srcSize[1] & " Dateien Kopiert." & @CRLF _
    & $destSize[2] & " von " & $srcSize[2] & " Ordner Kopiert.", Round($destSize[0] / $1_percent, 2) & "% - Fertig!")
    Sleep(200)
    Until $destSize[0] >= $srcSize[0]
    ProgressOff()
    EndFunc ;==>CopyWithProgress

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

    Func _xcopy()
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    CopyWithProgress($var1, $var2)

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

    Next

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

    EndFunc ;==>_xcopy

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

    Func _format()

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

    Dim $sFilePath = @ScriptDir & '\lastsave.log'
    Dim $outFile = @ScriptDir & '\lastsave.log'
    Dim $aArray
    _FileReadToArray($sFilePath, $aArray) ; datei in Array lesen

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

    For $i = 1 To $aArray[0] ; zeilenweise durchgehen

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

    $aArray[$i] = StringReplace($aArray[$i], ',', '|') ; der String wird ersetzt durch den String mit der Eingabe
    Next

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

    If FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
    _FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

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

    EndFunc ;==>_format

    [/autoit]


    Und hier steckt der Wurm drin was mache ich falsch ??

    [autoit]

    Func _iniwrite()

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

    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite($ini, 'Backup', 'Quelle', $var1)
    IniWrite($ini, 'Backup', 'Ziel', $var2)
    Next
    ; Next
    IniWrite($ini, 'Wochentag', 'tage', $checked)

    IniWrite($ini, 'Startzeit', 'Uhr', $Time)

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

    EndFunc ;==>_iniwrite

    [/autoit]

    Danke
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    3 Mal editiert, zuletzt von subzero007 (22. September 2009 um 15:43)

  • Sooo..

    meine

    [autoit]

    Func _iniwrite()
    FileDelete($ini)
    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite('save.ini', 'Backup', 'Quelle', $var1)
    IniWrite('save.ini', 'Backup', 'Ziel', $var2)
    Next
    ; Next
    IniWrite('save.ini', 'Wochentag', 'tage', $checked)
    Msgbox(0,"", $time)
    IniWrite('save.ini', 'Startzeit', 'Uhr', $Time)

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

    EndFunc ;==>_iniwrite

    [/autoit]

    Funktioniert Bloss bei der $time gibt er immer nur 12 aus wo liegt der fehler?
    Und mein Problem noch das nur der letzte eintrag in der Listview eingetragen wird in die ini ist noch da hat jemand noch tipps oder vorschläge??

    Danke SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Hallo subzero007

    die 12 bei Deiner Ausgabe ist die CtrlID des Elements selbst.
    Versuche es mal mit:

    Spoiler anzeigen
    [autoit]

    Func _iniwrite()
    FileDelete($ini)
    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite('save.ini', 'Backup', 'Quelle', $var1)
    IniWrite('save.ini', 'Backup', 'Ziel', $var2)
    Next
    ; Next
    IniWrite('save.ini', 'Wochentag', 'tage', $checked)
    Msgbox(0,"", GUICtrlRead($time))
    IniWrite('save.ini', 'Startzeit', 'Uhr', GUICtrlRead($time))

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

    EndFunc ;==>_iniwrite

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hey,

    Suppi .....

    Jetzt nur noch mein letztes Problem das nur der letzte Listview eintrag in der ini landet.
    Eine idee?
    Danke
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • hey,

    ich glaube ich sollte mein problem näher erklären.
    so sieht meine ini aus.
    [Backup]
    Quelle=C:\xxxx
    Ziel=C:\xxx
    [Wochentag]
    tage=0

    Ich habe in der Listview mehrer einträge
    quelle|ziel
    quelle|ziel
    quelle|ziel
    quelle|ziel
    xxxx|xxx

    er speichert leider nur den letzen eintrag in die ini.?

    [autoit]

    Func _iniwrite()
    FileDelete($ini)
    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite('save.ini', 'Backup', 'Quelle', $var1)
    IniWrite('save.ini', 'Backup', 'Ziel', $var2)
    Next
    ; Next
    IniWrite('save.ini', 'Wochentag', 'tage', $checked)
    Msgbox(0,"", $time)
    IniWrite('save.ini', 'Startzeit', 'Uhr', $Time)

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

    EndFunc

    [/autoit]

    Danke Danke
    Gruß
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Siehe die letzen 2 Kommentare

    [autoit]

    Func _iniwrite()
    FileDelete($ini)
    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite('save.ini', 'Backup', 'Quelle', $var1) ;Hier wird immer derselbe Wert überschrieben?!
    IniWrite('save.ini', 'Backup', 'Ziel', $var2) ;Hier auch
    Next
    ; Next
    IniWrite('save.ini', 'Wochentag', 'tage', $checked)
    Msgbox(0,"", $time)
    IniWrite('save.ini', 'Startzeit', 'Uhr', $Time)

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

    EndFunc

    [/autoit]
  • Also muss ich in eine neue Sektion schreiben wie mache ich das ?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • nein, du musst einen neuen Key schreiben

    IniWrite('save.ini', 'Backup', 'Quelle', $var1) ;Hier wird immer derselbe Wert überschrieben?!
    in diesem Fall ist Quelle Dein Key .....

    Quelle1
    Quelle2
    Quelle3

    wäre eine Möglichkeit ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Meine ich ja ;)
    Wie mache ich das ?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • dazu musst Du in einer Variable vorhalten,
    wieviele Einträge die Sektion schon hat und dann dementsprechend
    den nächsten Eintrag mit "Quelle"&$anzahl +1 schreiben

    Einfach mit IniReadSection beim Start einlesen und [0][0] auswerten
    Im Programm hochzählen ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ok,
    ich merke ich muss was dazu noch das richtige in der hilfe finden ?(

    Oder kannst du mir ein Beispiel geben ?
    Oder sagen wo ich das nachlesen kann ?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • [autoit]

    #include <Array.au3>

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

    Global $Wert

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

    $Wert = MouseGetPos()
    _ArrayDisplay ($Wert)

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

    For $i=0 to Ubound ($Wert)-1
    IniWrite ("Test.ini", "Quelle", "Pfad"&$i, $Wert[$i])
    Next

    [/autoit]

    Ein Bsp ! :D

  • hey,
    hatte gestern soviel zu tun so die einträge in die ini Klappt alles wunder bar auch die Uhrzeit danke euch allen ;)

    [autoit]

    Func _iniwrite()
    ;FileDelete($ini)
    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2 ^ $i)
    EndIf

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

    Next
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1;hier zählst du die einträge
    $var1 = _GUICtrlListView_GetItemText($hListView, $i, 0)
    $var2 = _GUICtrlListView_GetItemText($hListView, $i, 1)
    IniWrite('save.ini', 'Backup', 'Quelle-'&$i, $var1)
    IniWrite('save.ini', 'Backup', 'Ziel-'&$i, $var2)
    Next
    ; Next
    IniWrite('save.ini', 'Wochentag', 'tage', $checked)
    Msgbox(0,"", $time)
    IniWrite('save.ini', 'Startzeit', 'Uhr', GUICtrlRead($time))

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

    EndFunc ;==>_iniwrite

    [/autoit]


    Gruß
    SubZero

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."