ListView von verschobenen Datein

  • Hallo,

    also das folgene Script verschiebt die in einer INI bestimmten Datein an verschiedene Ordner.
    Alle in die $Zielpfad verschobenen Datein möchte ich in einem listview sehen. Mir fehlt jeder Ansatz -.-.
    Vielleicht habt ihr eine Idee?

    Regards

    Dswayne

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <File.au3>
    #include <Array.au3>

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

    ;Variablen deklarieren

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

    $name = "Verschieben"
    $config = "verschieben.ini"

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

    ;~ GUI
    opt("GUIOnEventMode", 1)
    GUICreate("Graphical User Interface",300,200,-1,-1) ;GUI wird erstellt
    GUISetOnEvent($GUI_Event_Close, "_Exit") ;Funktion wird an das "X" gebunden
    GUICtrlCreateButton("Verschieben",200,155,100,40) ;Button wird erstellt
    ;~ GUICtrlCreateButton("Suchen",200,115,100,40);Button wird erstellt
    GUICtrlSetOnEvent(3, "_verschieben") ;Funktion wird mit Button verknüpft
    GUISetState() ;zeigt das Fenster an

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

    While 1 ;While-Schleife damit das Fenster nicht geschlossen wird
    Sleep(100);sleep um die CPU zu entlasten
    WEnd

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

    Func _Exit()
    Exit;Funktion die zum Schließen der GUI benötigt wird
    EndFunc

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

    Func _verschieben()

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

    $i=1

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

    While 1

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

    $quellpfad = iniread($config,$i,"quellpfad","ERROR")
    $zielpfad = iniread($config,$i,"zielpfad","ERROR")
    $datei = iniread($config,$i,"datei","ERROR")
    $benachrichtigung = IniRead($config,$i,"benachrichtigung","ERROR")
    $archiv = IniRead($config,$i,"archiv","ERROR")

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

    If $quellpfad = "ERROR" Or $zielpfad = "ERROR" Or $datei = "ERROR" or $benachrichtigung ="ERROR" or $archiv = "ERROR" Then
    msgbox(4112,$name & $datei,"Die INI-Datei konnte nicht gelesen werden.")
    Exit
    EndIf

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

    If FileExists($quellpfad & "\" & $benachrichtigung) Then
    FileMove($quellpfad & "\" & $benachrichtigung, $archiv, 0)
    MsgBox(0,"PDF GEFUNDEN","PDF-Datei in " & $quellpfad & " gefunden")
    EndIf
    If FileExists($quellpfad & "\" & $datei) Then
    FileCopy($quellpfad & "\" & $datei, $archiv, 0)
    EndIf
    If FileExists($quellpfad & "\" & $datei) Then
    FileMove($quellpfad & "\" & $datei , $zielpfad, 0)
    EndIf

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

    $i = $i+1

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

    If IniReadSection($config,$i) = @error Then
    ExitLoop
    EndIf

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

    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Könntest Du BITTE noch die "verschieben.ini" oder eine gleich aufgebaute Beispiel-INI zur Verfügung stellen?

    Ich würde sagen, den Ist-Bestand vor dem verschieben und nach dem verschieben jeweils in ein Array aufnehmen und dann die beiden Arrays vergleichen. Die Diff ist dann das Ergebnis.

    Oder Du prüfst, ob wirklich alle Dateien die in der INI stehen auch wirklich verschoben wurden und dann kannst DU die Dateien ja auch von der INI auslesen.

    Ich habe mal eine Bsp.-INI erstellt ud beigefügt. Das ist die INI für folgenes, was Du dir mal anschauen kannst, ob Dir damit schon mal geholfen ist:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Local $var = IniRead(@ScriptDir & "\verschieben.ini", "AAA", "BBB", "default") ; default = CCC
    Local $var2 = IniRead(@ScriptDir & "\verschieben.ini", "AAA", "DDD", "default") ; Default = EEE

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

    Example()

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

    Func Example()
    Local $listview, $item1, $item2, $item3,$msg

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

    GUICreate("Listview Einträge", 220, 170, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF) ; Ändert die Hintergrundfarbe

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

    $listview = GUICtrlCreateListView("AAA/BBB|AAA/DDD", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    $item1 = GUICtrlCreateListViewItem($var , $listview)
    $item2 = GUICtrlCreateListViewItem("|" & $var2, $listview)
    $item3 = GUICtrlCreateListViewItem($var & "|" & $var2, $listview)

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

    GUISetState()
    ; Einträge kann man mit GUICtrlSetData setzen bzw. ersetzen
    ;GUICtrlSetData($item1, $var & "|" & $var2) ; beide Einträge ersetzen
    ;GUICtrlSetData($item1, $var) ; nur den ersten Einträge ersetzen
    ;GUICtrlSetData($item1, "|" & $var2) ; nur den zweiten Eintrag ersetzen

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

    Do
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $listview
    MsgBox(0, "Listview", "angeklickt=" & GUICtrlGetState($listview), 2)
    EndSelect
    Until $msg = $GUI_EVENT_CLOSE
    EndFunc ;==>Example

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    4 Mal editiert, zuletzt von Alina (27. November 2014 um 11:58)