Treeview und Ini

  • Hey,

    Ich wollte euch mal mein Sichrungstoll Vorstellen und gleich mit meinem neuen Problem bekannt machen und um eure Hilfe bitten.

    Hinzufügen und entfernen Funktioniert
    Sichern Funktioniert
    Ini wegschreiben funktioniert

    task funktion bin noch beim srvany "fast fertig"

    Jetzt geht es zu meinem Problem Restore:

    So sieht meine Verzeichnis Struktur aus:

    \%backupordner%\aktuellesdatum\log.ini
    \%backupordner%\aktuellesdatum\ordner1
    \%backupordner%\aktuellesdatum\ordner2
    \%backupordner%\aktuellesdatum\ordner3

    \%backupordner%\aktuellesdatum\log.ini
    \%backupordner%\aktuellesdatum\ordner1
    \%backupordner%\aktuellesdatum\ordner2
    \%backupordner%\aktuellesdatum\ordner3


    jetzt will ich alle ordner die im %backupordner% liegen in der Treeview Darstellen die eine Log.ini im root Verzeichnis haben.

    so sieht meine log.ini aus:

    [Quelle-Ziele]
    c:\apps\test=f:\backup\29.09.2009
    c:\apps\test2=f:\backup\29.09.2009
    c:\apps\test3=f:\backup\29.09.2009
    c:\apps\test4=f:\backup\29.09.2009
    c:\apps\test5=f:\backup\29.09.2009


    Jetzt zu meinem Problem
    1.wie mache ich das alle order in einer Treeview darzustellen die eine log.ini im root verzeichnis haben "\%backupordner%\aktuellesdatum\" darzustellen?
    2.Wie mache er dann den Ordner den ich anklicke das er dann die ini einliest damit er die daten,
    wieder dort hin kopiert woher die auch kamen also an die quelle:

    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>
    #include <Constants.au3>
    #include <Date.au3>
    #include <array.au3>

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

    Local $arCheckBox[7]
    Global $ini = @SystemDir & '\save.ini'
    Global $path = @SystemDir & '\lastsave'
    Global $hfile = @SystemDir & '\lastsave.log'
    Global $line

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

    $Form1 = GUICreate("Sicherung", 918, 600, 219, 121)
    $Tab1 = GUICtrlCreateTab(16, 24, 873, 560)
    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")

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

    $Time = GUICtrlCreateDate('15:00', 24, 393, 70, 21, $DTS_TIMEFORMAT)
    ;GUICtrlCreateDate('00:00:00', 10, 10, 100, 30, $DTS_TIMEFORMAT)
    $DTM_SETFORMAT_ = 0x1032
    $style = "HH:mm"
    GUICtrlSendMsg($Time, $DTM_SETFORMAT_, 0, $style)

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

    $hListView = GUICtrlCreateListView("Quelle|Ziel", 24, 73, 850, 246)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 420)
    GUICtrlSendMsg(-1, $LVSCW_AUTOSIZE_USEHEADER, 1, 420)

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

    $hListView1 = GUICtrlCreateListView("Quelle|Ziel", 24, 420, 850, 150)
    GUICtrlSendMsg($hListView1, $LVM_SETCOLUMNWIDTH, 0, 420)
    GUICtrlSendMsg($hListView1, $LVSCW_AUTOSIZE_USEHEADER, 1, 420)

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

    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", 100, 390, 75, 25)
    $Save = GUICtrlCreateButton("Save-Settings", 800, 49, 75, 25)

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

    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")

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

    $TabSheet2 = GUICtrlCreateTabItem("Restore")
    $Input2 = GUICtrlCreateInput("Input1", 31, 81, 760, 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", 800, 129, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $TreeView1 = GUICtrlCreateTreeView(31, 137, 760, 241)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Wiederherstellen = GUICtrlCreateButton("Wiederherstellen", 800, 353, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Button1 = GUICtrlCreateButton("suchen", 800, 81, 83, 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", 800, 321, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)

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

    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
    Local $aData = IniReadSection(@ScriptDir & '\save.ini', "Quelle-Ziele")
    ; _ArrayDisplay($aData)
    For $i = 1 To UBound($aData) - 1
    GUICtrlCreateListViewItem($aData[$i][0] & "|" & $aData[$i][1], $hListView)
    Next
    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
    _iniwrite()
    _xcopy()
    Case $Task_Plannen
    _iniwrite()
    Case $Save
    _iniwrite()

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

    EndSwitch
    WEnd

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

    Func _iniwrite()
    ;FileDelete($ini)
    IniDelete(@ScriptDir & '\save.ini', 'Quelle-Ziele')

    [/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
    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)
    ;IniWrite('save.ini', 'Quelle-Ziele', $var1&$i, $var2&$i)
    IniWrite(@ScriptDir & '\save.ini', 'Quelle-Ziele', $var1, $var2)
    Next
    ; Next
    IniWrite(@ScriptDir & '\save.ini', 'Wochentag', 'tage', $checked)
    ;MsgBox(0, "", $Time)
    ;IniWrite('save.ini', 'Startzeit', 'Uhr', GUICtrlRead($Time))
    IniWrite(@ScriptDir & '\save.ini', 'Startzeit', 'Uhr', StringReplace(GUICtrlRead($Time), ':', ''))
    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(@ScriptDir & '\save.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)
    $date = _DateTimeFormat(_NowCalc(), 2)
    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')
    $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)
    Run(@ComSpec & " /c " & @SystemDir & '\xcopy "' & $srcDir & '" "' & $destDir & $date & '\' & $lastpath & '\" /D /S /E /V /C /H /R /Y /F >' & @ScriptDir & '\xcopy.txt', "", @SW_SHOW)
    $winpos = WinGetPos("Sicherung")
    Sleep(1000)
    While ProcessExists("xcopy.exe")
    ToolTip('Bitte warten........' & @CRLF & 'copy läuft....' & @CRLF & $srcDir & ' ' & $destDir & $lastpath & $date, $winpos[0] + $winpos[2] / 2, $winpos[1] + $winpos[3] / 3) ; sollte mittig zur Gui stehen, oder?
    Sleep(100) ; hatte ich vergessen um CPU runterzufahren....
    WEnd
    ToolTip('')
    _FileReadToArray(@ScriptDir & "\xcopy.txt", $line)
    For $i = 1 To UBound($line) - 1
    $line[$i] = StringReplace($line[$i], ' -> ', '|') ; der String wird ersetzt durch den String mit der Eingabe
    GUICtrlCreateListViewItem($line[$i], $hListView1)
    Next
    ;FileDelete (@Scriptdir & "\xcopy.txt")
    Local $aData = IniReadSection(@ScriptDir & "\save.ini", "Quelle-Ziele")
    ; _ArrayDisplay($aData)
    For $i = 1 To UBound($aData) - 1
    IniWrite($destDir & $date & '\Log.ini', 'Quelle-Ziele', $aData[$i][0], $aData[$i][1] & '\' & $date)
    ConsoleWrite($destDir & $date & '\' & $lastpath & '\Log.ini')
    Next
    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)
    ;IniWrite(@ScriptDir & '\Log.ini', 'Quelle-Ziele', $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] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else

    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then
    $strFiles &= $file.Path & $Delim
    EndIf
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]

    Viellen dank jetzt schon für die vorschläge:


    Danke
    SubZero

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

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

    2 Mal editiert, zuletzt von subzero007 (29. September 2009 um 17:52)

  • bin ja schonmal weiter gekommen aber jetzt geht es garnicht mehr weiter??

    So sieht jetzt meine Gui aus:
    autoit.de/wcf/attachment/6223/

    Jeztz möchte ich mein Button wieder herstellen aktivieren um einen Bestimmten order wieder an die stelle zu kopieren wo er auch her kam

    ich habe in jedem Verzeichnis eine ini die So aussieht:

    [Quelle-Ziele]
    C:\filemon=C:\backupordner\25.09.2009
    C:\cisco=C:\backupordner\25.09.2009
    C:\Forms=C:\backupordner\25.09.2009

    Wie kann ich das jetzt meiner Treeview folgendes mitgeben also makieren und dann wiederherstellen " Dircopy Ziele, quelle" kann mir jemand helfen?

    Hier mein Aktueller Code:

    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>
    #include <Constants.au3>
    #include <Date.au3>
    #include <array.au3>
    #include<GuiTreeView.au3>

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

    Local $arCheckBox[7]
    Global $ini = @SystemDir & '\save.ini'
    Global $path = @SystemDir & '\lastsave'
    Global $hfile = @SystemDir & '\lastsave.log'
    Global $line
    Global $width = 918, $height = 600

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

    $Form1 = GUICreate("Sicherung", 918, 600, 219, 121)
    $Tab1 = GUICtrlCreateTab(16, 24, 873, 560)
    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")

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

    $Time = GUICtrlCreateDate('15:00', 24, 393, 70, 21, $DTS_TIMEFORMAT)
    ;GUICtrlCreateDate('00:00:00', 10, 10, 100, 30, $DTS_TIMEFORMAT)
    $DTM_SETFORMAT_ = 0x1032
    $style = "HH:mm"
    GUICtrlSendMsg($Time, $DTM_SETFORMAT_, 0, $style)

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

    $hListView = GUICtrlCreateListView("Quelle|Ziel", 24, 73, 850, 246)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 420)
    GUICtrlSendMsg(-1, $LVSCW_AUTOSIZE_USEHEADER, 1, 420)

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

    $hListView1 = GUICtrlCreateListView("Quelle|Ziel", 24, 420, 850, 150)
    GUICtrlSendMsg($hListView1, $LVM_SETCOLUMNWIDTH, 0, 420)
    GUICtrlSendMsg($hListView1, $LVSCW_AUTOSIZE_USEHEADER, 1, 420)

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

    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", 100, 390, 75, 25)
    $Save = GUICtrlCreateButton("Save-Settings", 800, 49, 75, 25)

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

    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")

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

    $TabSheet2 = GUICtrlCreateTabItem("Restore")
    $Input2 = GUICtrlCreateInput("Input2", 31, 81, 760, 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", 800, 129, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $hTreeView = GUICtrlCreateTreeView(31, 137, 760, 410)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Wiederherstellen = GUICtrlCreateButton("Wiederherstellen", 800, 353, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $suchenBackup = GUICtrlCreateButton("...", 800, 81, 30, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $list = GUICtrlCreateButton("List", 835, 81, 30, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")

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

    $Verfuegbare_sicherungen = GUICtrlCreateLabel("Verfuegbare_sicherungen", 48, 113, 126, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Offnen = GUICtrlCreateButton("Offnen", 800, 321, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Global $hFiles = GUICtrlCreateCheckbox('inkl. Dateien', $width - 100, 10, 80, 16)
    Global $bFiles = False

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

    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)

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

    If FileExists(@ScriptDir & '\save.ini') Then
    $ini = IniRead(@ScriptDir & '\save.ini', "Wochentag", "tage", 0)
    $bordner = IniRead(@ScriptDir & '\save.ini', "Last-Restore-Ordner", "Pfad", 0)
    If Not $bordner = "" Then GUICtrlSetData($Input2, $bordner)
    For $i = 6 To 0 Step -1
    If BitAND($ini, 2 ^ $i) Then
    GUICtrlSetState($arCheckBox[$i], $GUI_CHECKED)
    EndIf
    Next
    Local $aData = IniReadSection(@ScriptDir & '\save.ini', "Quelle-Ziele")

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

    ; _ArrayDisplay($aData)
    For $i = 1 To UBound($aData) - 1
    GUICtrlCreateListViewItem($aData[$i][0] & "|" & $aData[$i][1], $hListView)
    Next
    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
    _iniwrite()
    _xcopy()
    Case $Task_Plannen
    _iniwrite()
    Case $Save
    _iniwrite()
    Case $suchenBackup
    $source_path = FileSelectFolder("Wählen den zu BackupOrdner:", 'c:')
    If Not $source_path = "" Then GUICtrlSetData($Input2, $source_path)
    IniWrite(@ScriptDir & '\save.ini', 'Last-Restore-Ordner', 'Pfad', $source_path)
    log_ini_treeview()
    Case $list
    log_ini_treeview()

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

    EndSwitch
    WEnd

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

    Func log_ini_treeview()

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

    $source_path = GUICtrlRead($Input2)
    $searchstring = "log.ini" ; z.B. "crash20060905.txt"
    $n = 0 ; Anzahl der kopierten Dateien
    $FolderList = _FileListToArray($source_path & '\', "*", 2) ; Flag 2 = nur Ordner
    If (Not IsArray($FolderList)) And (@error = 1) Then
    MsgBox(0, "", "Keine Ordner gefunden.")
    Exit
    EndIf
    For $i = 1 To $FolderList[0]
    $FileList = _FileListToArray($source_path & '\' & $FolderList[$i])
    If IsArray($FileList) Then
    ; _ArrayDisplay($FileList)
    $spath = $source_path & '\' & $FolderList[$i] & '\'
    If FileExists($source_path & '\' & $FolderList[$i] & '\log.ini') Then
    Local $aCount = _GUICtrlTreeView_CreateDirectory($hTreeView, $spath, $bFiles)
    EndIf
    EndIf
    Next

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

    EndFunc ;==>log_ini_treeview

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

    ;===============================================================================
    ; Function Name: _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles)
    ; Description:: erstellt ein TreeView mit Verzeichnissen (+Dateien)
    ; Parameter(s): $hTreeView = ControlID/Handle des TreeViews
    ; $sPath = Verzeichnispfad, der dargestellt werden soll
    ; $bFiles = True = auch Dateien anzeigen, False = nur Verzeichnisse
    ; Requirement(s): #include<GuiTreeView.au3>
    ; Return Value(s): Array mit Anzahl der Verzeichnisse=[0] und Dateien=[1]
    ; 0 und @error = 1, wenn der Pfad nicht existiert bzw. kein Verzeichnis ist
    ; 0 und @error = 2, wenn das FileSystemObject nicht erstellt werden konnte
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _GUICtrlTreeView_CreateDirectory($hTreeView, $spath, $bFiles = False)
    Local $hFileItem, $FolderColor = 0x0000FF, $Folder, $aCount[2] = [0, 0]
    If Not StringInStr(FileGetAttrib($spath), 'D') Then Return SetError(1, 0, 0)
    $spath = FileGetLongName($spath)
    Local $oFSO = ObjCreate('Scripting.FileSystemObject')
    If @error Then Return SetError(2, 0, 0)
    _GUICtrlTreeView_BeginUpdate($hTreeView)
    ; _GUICtrlTreeView_DeleteAll(GUICtrlGetHandle($hTreeView))
    Local $hTreeViewItem = GUICtrlCreateTreeViewItem($spath, $hTreeView)
    GUICtrlSetColor(-1, $FolderColor)
    _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 0)
    $Folder = $oFSO.GetFolder($spath)
    _CreateDirectoryRecursive($hTreeView, $Folder, $hTreeViewItem, $bFiles, $aCount)
    If $bFiles Then
    For $Files In $Folder.Files
    $hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hTreeViewItem)
    $aCount[1] += 1
    Next
    EndIf
    _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 3, 2)
    _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 110, 4)
    _GUICtrlTreeView_EndUpdate($hTreeView)
    GUICtrlSetState($hTreeViewItem, $GUI_EXPAND)
    $oFSO = ''
    Return $aCount
    EndFunc ;==>_GUICtrlTreeView_CreateDirectory

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

    Func _CreateDirectoryRecursive($hTreeView, $Folder, $ItemOld, $bFiles, ByRef $aCount)
    Local $hFolderItem, $hFileItem, $FolderColor = 0x0000FF
    For $Subfolder In $Folder.SubFolders
    $hFolderItem = GUICtrlCreateTreeViewItem($Subfolder.Name, $ItemOld)
    GUICtrlSetColor(-1, $FolderColor)
    _GUICtrlTreeView_SetIcon($hTreeView, $hFolderItem, 'shell32.dll', 3, 2)
    _GUICtrlTreeView_SetIcon($hTreeView, $hFolderItem, 'shell32.dll', 110, 4)
    $aCount[0] += 1
    _CreateDirectoryRecursive($hTreeView, $Subfolder, $hFolderItem, $bFiles, $aCount)
    If $bFiles Then
    For $Files In $Subfolder.Files
    $hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hFolderItem)
    $aCount[1] += 1
    Next
    EndIf
    Next
    EndFunc ;==>_CreateDirectoryRecursive

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

    Func _iniwrite()
    ;FileDelete($ini)
    IniDelete(@ScriptDir & '\save.ini', 'Quelle-Ziele')

    [/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
    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)
    ;IniWrite('save.ini', 'Quelle-Ziele', $var1&$i, $var2&$i)
    IniWrite(@ScriptDir & '\save.ini', 'Quelle-Ziele', $var1, $var2)
    Next
    ; Next
    IniWrite(@ScriptDir & '\save.ini', 'Wochentag', 'tage', $checked)
    ;MsgBox(0, "", $Time)
    ;IniWrite('save.ini', 'Startzeit', 'Uhr', GUICtrlRead($Time))
    IniWrite(@ScriptDir & '\save.ini', 'Startzeit', 'Uhr', StringReplace(GUICtrlRead($Time), ':', ''))
    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(@ScriptDir & '\save.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)
    $date = _DateTimeFormat(_NowCalc(), 2)
    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')
    $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)
    Run(@ComSpec & " /c " & @SystemDir & '\xcopy "' & $srcDir & '" "' & $destDir & $date & '\' & $lastpath & '\" /D /S /E /V /C /H /R /Y /F >' & @ScriptDir & '\xcopy.txt', "", @SW_SHOW)
    $winpos = WinGetPos("Sicherung")
    Sleep(1000)
    While ProcessExists("xcopy.exe")
    ToolTip('Bitte warten........' & @CRLF & 'copy läuft....' & @CRLF & $srcDir & ' ' & $destDir & $lastpath & $date, $winpos[0] + $winpos[2] / 2, $winpos[1] + $winpos[3] / 3) ; sollte mittig zur Gui stehen, oder?
    Sleep(100) ; hatte ich vergessen um CPU runterzufahren....
    WEnd
    ToolTip('')
    _FileReadToArray(@ScriptDir & "\xcopy.txt", $line)
    For $i = 1 To UBound($line) - 1
    $line[$i] = StringReplace($line[$i], ' -> ', '|') ; der String wird ersetzt durch den String mit der Eingabe
    GUICtrlCreateListViewItem($line[$i], $hListView1)
    Next
    ;FileDelete (@Scriptdir & "\xcopy.txt")
    Local $aData = IniReadSection(@ScriptDir & "\save.ini", "Quelle-Ziele")
    ; _ArrayDisplay($aData)
    For $i = 1 To UBound($aData) - 1
    IniWrite($destDir & $date & '\Log.ini', 'Quelle-Ziele', $aData[$i][0], $aData[$i][1] & '\' & $date)
    ConsoleWrite($destDir & $date & '\' & $lastpath & '\Log.ini')
    Next
    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)
    ;IniWrite(@ScriptDir & '\Log.ini', 'Quelle-Ziele', $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]

    Dateien

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

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

  • hey,

    ja das hat mir gefehlt und wie mache ich dann die abfrage anschliessend ini lesen" Richtigen eintrag finden" ?
    Und an zur quelle den ordner kopieren ?

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

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

  • In jedem verzeichnis liegt eine ini "log.ini"


    [Quelle-Ziele]
    C:\filemon=C:\backupordner\25.09.2009
    C:\cisco=C:\backupordner\25.09.2009
    C:\Forms=C:\backupordner\25.09.2009

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

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

  • Das Backup Verzeichnis kann ich ja einlesen funktioniert ja auch aber,

    Welche sektion ich einlesen muss also was mabe ich makiert und welche sektion in der ini bist du,
    damit ich deine Quelle weiss?

    Wichtig ja eigentlich nur die Quelle das Backupverzeichniss kann ja überall liegen.

    Kriege das irgendwie nicht gebacken ??

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

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

  • ich versuche mal mein Problem näher zu beschreiben.

    Habe folgende ini im Verzeichnis C:\backupordner\25.09.2009\log.ini liegen
    Dort sind weitere ordner:
    Filemon
    cisco
    Forms
    log.ini

    [Quelle-Ziele]
    C:\filemon=C:\backupordner\25.09.2009
    C:\cisco=C:\backupordner\25.09.2009
    C:\Forms=C:\backupordner\25.09.2009


    Wenn ich jetzt folgenden ordner makiere siehe bild:
    C:\backupordner\25.09.2009 \forms
    autoit.de/wcf/attachment/6226/

    Wie Kriege ich die zuordnung Hin?:
    Log.ini im verzeichnis >>C:\backupordner\25.09.2009\log.ini
    [Quelle-Ziele]
    C:\Forms=C:\backupordner\25.09.2009

    Damit ich das makierte nach c:\forms kopieren kann?

    Dateien

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

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

    3 Mal editiert, zuletzt von subzero007 (30. September 2009 um 17:10)

  • Hallo subzero007,

    schau dir die Hilfe zu _GUICtrlTreeView_GetTree an, diese Funktion ermittelt den kompletten Pfad bis hin zum gewünschten Item.

    Außerdem solltest du das TreeView beim Klicken von List löschen:

    [autoit]

    Func log_ini_treeview()
    _GUICtrlTreeView_DeleteAll($hTreeView) ;< ================ sonst werden Sicherungen mehrfach angezeigt
    ;wenn es der Anwender ein weiteres Mal anklick
    .
    .
    .
    EndFunc ;==>log_ini_treeview

    [/autoit]

    mfg (Auto)bert

  • Hey,

    habe mir ja die hilfe durchgelesen hänge seit 3 tagen dran aber finde leider nichts.

    kann mir jemand einen tipp geben oder ein kleines beispiel geben mit pfad angabe ="selected ITem" und quelle="read ini" ??

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

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

  • Hallo subzero007,

    zum Anfang musst du den allerobersten Vorfahren des selektierten Eintrags ermitteln, das machst du so:

    [autoit]

    Case $Wiederherstellen
    MsgBox(0,"Kompletter Baum bis zum selektiertem Eintrag",_GUICtrlTreeView_GetTree($hTreeView))

    [/autoit]


    den Rest kannst du dann mit Stringmanipulationen machen und anschliessend die entsprechende INI lesen, das schaffst du schon, hau rein ;) ,

    mfg (Auto)Bert

  • Hey,

    so den Ort in Treeview kann ich mir jetzt suaber ausgeben:

    [autoit]

    $ziel = _GUICtrlTreeView_GetTree($hTreeView)
    $qziel = StringReplace($ziel, '|', '\')
    ConsoleWrite($qziel)

    [/autoit]

    consolewrite = C:\backupordner\29.09.2009\filemon

    Funktioniert aber jetzt kriege ich die die verknüfung nicht zur ini hin also an die Quelle??

    [Quelle-Ziele]
    C:\filemon=C:\backupordner\29.09.2009
    C:\cisco=C:\backupordner\29.09.2009
    C:\Forms=C:\backupordner\29.09.2009

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

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

    • Offizieller Beitrag

    consolewrite = C:\backupordner\29.09.2009\filemon

    Funktioniert aber jetzt kriege ich die die verknüfung nicht zur ini hin also an die Quelle??

    [Quelle-Ziele]
    C:\filemon=C:\backupordner\29.09.2009
    C:\cisco=C:\backupordner\29.09.2009
    C:\Forms=C:\backupordner\29.09.2009

    Na, klingelts? Du brauchst nur vom ausgelesenen Backupordner den Teil nach dem letzten Backslash selektieren (filemon) fügst davor einfach 'C:\' an und fertig ist die Laube.

  • So weit habe ich auch gedacht aber als beispiel:

    autoit.de/wcf/attachment/6235/

    wenn anwender qm-Foms anklickt und ich bis zum letzten Backslash gehe sehe ich qm-Foms

    Wie kann ich den fehler abfangen ?
    wenn er im Haupt ordner bleibt ist ja alles schön und gut aber wenn er tiefer in den Ordner geht dann habe ich ein Problem.


    Eine idee?

    Dateien

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

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

  • Hallo subzero,

    wenn er den Unterordner nicht findet, dann gehst du halt solange in den Unterverzeichnissen (im String) zurück, bis der Ordnername ein INI-File enthält (komischerweise ist dann der Ordner davvor immer ein Tagesdaum)

    mfg (Auto)Bert

  • Hey,


    Mir würde ja reichen wenn ich nur ins Root gucken könnte,
    Also das meine Treeview nicht in Unterordern gucken kann aber wie mache ich das Blicke mit treeview noch nicht durch ?

    es ist natürlich besser wenn ich alles könnte unter ordner und dateien Restoren aber weiss nicht wie bin kurz vorm aufgeben ??

    ?(?(?(

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

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

    • Offizieller Beitrag

    Ich wiederhole es nochmal: Mach dich mal mit den TreeView-Funktionen vertraut.

    Lies dir die Befehle in der Hilfe durch, da steht dabei, was sie tun.
    Parent - da bekommst du die nächst höhere Ebene, Child - die nächst tiefere, Sibling sind Geschwister - also gleiche Ebene.

    Ich vermute eher, dass du gar keinen Plan hast, wie du vorgehen sollst.
    Für diesen Fall gilt: Pseudo Code
    Also Aufschreiben, wie du es per Hand/Auge machen würdest.
    z.B.
    - gucke was geklickt ist
    - ist dort die Info, die ich brauche?
    - Ja -> OK
    - Nein -> gucke eine Ebene höher
    usw. usf.

    Und ERST DANN daraus den Code erstellen.

  • Ok,

    ich werde meine ini jetzt anders aufbauen dann kann ich auch auf datei ebene gehen, und habe vor dieses Problem so zu lösen.

    so sieht meine ini jetzt aus.
    [Quelle-Ziele]
    C:\filemon=C:\backupordner\27.09.2009
    C:\cisco=C:\backupordner\27.09.2009
    C:\Forms=C:\backupordner\27.09.2009

    So will ich sie aufbauen:
    [Quelle-Ziele]
    C:\Forms\FORM-AV-R04.doc=c:\backupordner\27.09.2009\Forms\FORM-AV-R04.doc
    C:\Forms\FORM-CIA-R10.doc=c:\backupordner\27.09.2009\Forms\FORM-CIA-R10.doc
    C:\Forms\FORM-ESD1-R04.doc=c:\backupordner\27.09.2009\Forms\FORM-ESD1-R04.doc
    C:\Forms\FORM-ESD2-R04.doc=c:\backupordner\27.09.2009\Forms\FORM-ESD2-R04.doc
    C:\Forms\FORM-ETB-R16.doc=c:\backupordner\27.09.2009\Forms\FORM-ETB-R16.doc

    Wie kann ich aus der log von xcopy die neue ini erstellen:

    C:\Forms\FORM-AV-R04.doc -> c:\backupordner\27.09.2009\Forms\FORM-AV-R04.doc
    C:\Forms\FORM-CIA-R10.doc -> c:\backupordner\27.09.2009\Forms\FORM-CIA-R10.doc
    C:\Forms\FORM-ESD1-R04.doc -> c:\backupordner\27.09.2009\Forms\FORM-ESD1-R04.doc
    C:\Forms\FORM-ESD2-R04.doc -> c:\backupordner\27.09.2009\Forms\FORM-ESD2-R04.doc
    C:\Forms\FORM-ETB-R16.doc ->c:\backupordner\27.09.2009\Forms\FORM-ETB-R16.doc
    C:\Forms\FORM-IA1-R02.doc -> c:\backupordner\27.09.2009\Forms\FORM-IA1-R02.doc


    Was halltest ihr von der idee?

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

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