1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Tweaky

Beiträge von Tweaky

  • Adressbuch erstellen

    • Tweaky
    • 28. Juni 2007 um 23:20

    Hi,
    ich nutze Outlook Express.
    Damit bin ich zufrieden ;-), jedoch stört mich das Adressbuch :(
    Ich hätte gerne ein Adressbuch, wo ich die Kontakte in Ordner unterteilen kann z. B. Beruf, Privat, Schule, ...
    Leider kann dies dieses nicht X(

    Kennt ihr ein Freeware Adressbuch wo nicht installiert werden muß und nicht zu überfüllt ist.

    Ich will keine Adressen eingeben, sondern nur Nachname, Vorname und E-Mail-Adresse. :D

    Ich habe mir auch überlegt, ob ich mir ein eigenes mit AutoIt schreiben soll.
    Allerdings bin ich mir da nicht sicher, ob als Speicherort der Daten eine .ini-Datei reicht oder ob ich eine Datenbank (SQL?) brauche ?(
    Wobei ich von Datenbank gar keine Ahnung habe.

    Das Adressbuch soll nicht so viele Einträge fassen.
    Ich sage mal so 200 Stück.

    Sagt mir bitte eure Meinung dazu ;)
    Danke :D

  • Einträge vom ListView nach dem erstellen einzeln einfärben

    • Tweaky
    • 27. Juni 2007 um 14:44

    :hammer: :hammer: :hammer: :hammer: :hammer: :hammer: :hammer:
    Oh man, so hatte ich es vorhin schonmal, habe aber "$item" nicht deklariert :hammer: :hammer: :hammer: und dann nicht auf die genaue Fehlermeldung geschaut :D

    Danke, danke danke :D :D :D

    EDIT: So ich habs endgültig (hoffe ich jedenfalls :D).
    Das Problem, dass die falschen Einträge eingefärbt wurden lag am Sortieren.

    Spoiler anzeigen
    [autoit]

    ;au3-Scripte, Bilder und Icons werden direkt in die exe-Datei übernommen und später beim ausführen in den @TempDir entpackt
    #include<Array.au3>
    #include<ArrayMore.au3>
    #include<File.au3>
    #include<GUIConstants.au3>
    #include<GuiListView.au3>

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

    Dim $Fehler1, $Fehler2, $Fehler3, $Quellordner, $Zielordner, $zielordner_korrekt, $quellordner_korrekt, $pfad_bilder_korrekt, $klappliste, $beenden2, $GUI2, $array_quelle, $pfad, $Pfad_ohne, $listview2, $listview, $fehler_zu, $format, $OK, $fehler, $foto_anfang, $Klappen2
    Dim $farbig, $datum_als_zahl, $item

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

    ;log
    $log = @ScriptDir & "\" & "datum.txt"

    ;Standardpfad hier auswählen
    $Standard_Quelle = "W:\DCIM\" ;Quellpfad

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

    ;Klappliste umzubenennender Teil des Dateinamens eines Fotos
    $Klapp_um1 = "IMG" ;1. Eintrag
    $Klapp_um2 = "DSC" ;2. Eintrag
    $Klapp_umS = $Klapp_um1 ;Standard-Eintrag

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

    ;Klappliste für das Umbenennen der Dateien
    $Klapp1 = "XY" ;1. Eintrag
    $Klapp2 = "TR" ;2. Eintrag
    $KlappS = $Klapp1 ;Standard-Eintrag

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

    ;------------------------------------------------------------------------------------------------
    ;Erkennung der Fotos und Videos
    $foto_typ = "JPG" ;Quellfotos Typ "JPG"
    $video_anfang = "MVI" ;Quellvideos "MVI"
    $video_typ1 = "AVI" ;Quellvideos Typ "AVI"
    $video_typ2 = "THM" ;Quellvideos Typ "THM"

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

    ;------------------------------------------------------------------------------------------------

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

    ;------------------------
    ;GUI
    ;------------------------

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

    ;GUI erzeugen
    $GUI1 = GUICreate("Foto - Video - Tool", 460, 960, 0, 0)

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

    ;Buttons
    $Quelle = GUICtrlCreateButton("Quellordner auswählen", 250, 295, 50, 50, $BS_ICON)
    $beenden = GUICtrlCreateButton("Beenden", 250, 895, 50, 50, $BS_ICON)

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

    ;Beschriftung erstellen (Text, Rahmen, Farbe)
    GUICtrlCreateLabel(" Erkennung von Fotos", 310, 220, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, 0xB0E0E6)
    GUICtrlCreateLabel(" Initialien des Fotografen", 310, 255, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, 0xB0E0E6)
    GUICtrlCreateLabel(" Quellordner auswählen", 310, 310, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, 0xD3D3D3)

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

    ;Bild auf die Buttons erstellen
    GUICtrlSetImage($Quelle, "shell32.dll", 27)
    GUICtrlSetImage($beenden, "shell32.dll", 27)

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

    ;Beschriftung
    GUICtrlCreateLabel(" aktueller Quellpfad:", 10, 10, 440, -1, $SS_CENTERIMAGE)
    GUICtrlSetBkColor(-1, 0xFFD700)
    GUICtrlCreateLabel(" aktueller Zielpfad:", 10, 30, 440, -1, $SS_CENTERIMAGE)
    GUICtrlSetBkColor(-1, 0xFFC8D)

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

    ;Liste mit Dateien
    $listview = GUICtrlCreateListView("Bild|Datum", 10, 60, 234, 884, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER));, $LVS_SORTDESCENDING));$LVS_SORTDESCENDING ;$LVS_SORTASCENDING
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)

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

    ;Spaltenbreite für die beiden Spalten festlegen
    _GUICtrlListViewSetColumnWidth($listview, 0, 93)
    _GUICtrlListViewSetColumnWidth($listview, 1, 120)

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

    ;Klapplisten für das Umbenennen der Dateien
    $foto_erkennung = GUICtrlCreateCombo($Klapp_umS, 250, 220, 50); erster Eintrag
    GUICtrlSetData(-1, $Klapp_um2, $Klapp_umS) ;weitere Einträge, getrennt durch | , zweiter Eintrag ist der Standard
    $Klappen = GUICtrlCreateCombo($KlappS, 250, 255, 50); erster Eintrag
    GUICtrlSetData(-1, $Klapp2, $KlappS) ;weitere Einträge, getrennt durch | , zweiter Eintrag ist der Standard

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

    ;------------------------------------------------------------------------------------------------------------------------------------------------

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

    ;------------------------
    ;sonstiges
    ;------------------------
    ;Quellordner öffnen
    _Quellordner()
    _Quellordner2()

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

    ;GUI anzeigen
    GUISetState(@SW_SHOW, $GUI1)

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

    ;------------------------------------------------------------------------------------------------------------------------------------------------

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

    ;------------------------
    ;Funktionen
    ;------------------------

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

    ;Quellordner auswählen
    Func _Quellordner()
    _GUICtrlListViewDeleteAllItems($listview)
    $Quellordner_ohne = FileSelectFolder("Bitte den Quellordner auswählen", "", "", $Standard_Quelle)
    $Quellordner = $Quellordner_ohne & "\"
    If $Quellordner_ohne = "a:\" Then
    MsgBox(16, "Ungültiger Quellordner", "Bitte wählen Sie einen korrekten Quellordner aus")
    _Quellordner()
    Else
    If ($Quellordner_ohne = "" Or StringInStr($Quellordner_ohne, ":") = 2) Then
    GUICtrlCreateLabel(" ", 110, 10, 330, -1, $SS_CENTERIMAGE)
    GUICtrlSetBkColor(-1, 0xFFD700)
    GUICtrlSetData(-1, $Quellordner_ohne)
    Else
    MsgBox(16, "Ungültiger Quellordner", "Bitte wählen Sie einen korrekten Quellordner aus")
    _Quellordner()
    EndIf
    EndIf
    EndFunc ;==>_Quellordner

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

    Func _Quellordner2()
    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl = DirGetSize($Quellordner, 3)
    Dim $array_quelle[$anzahl[1] + 1][2]

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

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle = 0
    Dim $array_quelle[$anzahl[1] + 1][2]
    $FileList = _FileListToArray($Quellordner, "*", 1)

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

    For $i = 1 To UBound($FileList) - 1
    $array_quelle[$i][0] = $FileList[$i]
    $time2 = FileGetTime($Quellordner & $FileList[$i], 0)
    $array_quelle[$i][1] = $time2[0] & $time2[1] & $time2[2] & $time2[3] & $time2[4] & $time2[5]
    Next

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

    ;Array sortieren nach Datum
    _ArraySort_2ary ($array_quelle, 1, 1)

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

    Dim $item[1000]

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

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($FileList) - 1

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

    If (StringRight($FileList[$i], 4) = ".jpg") OR (StringRight($FileList[$i], 4) = ".avi") OR (StringRight($FileList[$i], 4) = ".thm") Then
    $time2 = FileGetTime($Quellordner & $FileList[$i], 0)
    $video2 = $time2[0] & "." & $time2[1] & "." & $time2[2] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]
    $item[$i] = GUICtrlCreateListViewItem($FileList[$i] & "|" & $video2, $listview)
    ;~ MsgBox(0,"oben", _GUICtrlListViewGetItemText($listview, $i-1, 1))
    EndIf
    Next
    ;~ _bereits_kopiert()
    ;Einträge vom ListView sortieren
    Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    _GUICtrlListViewSort($listview, $B_DESCENDING, 1); $B_DESCENDING
    _GUICtrlListViewSort($listview, $B_DESCENDING, 1); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)
    _bereits_kopiert()

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


    EndFunc ;==>_Quellordner2

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

    Func _bereits_kopiert()
    If GUICtrlRead($Klappen) = $KlappS Then
    If Not FileExists($log) Then
    $file = FileOpen($log, 2)
    FileWrite($log, 20000101100000 & @CRLF)
    FileWrite($log, 20000101100000 & @CRLF)
    FileClose($file)
    Else

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

    Dim $farbig
    _FileReadToArray($log, $farbig)
    ;~ _ArrayDisplay($farbig)
    _ArrayInsert($farbig, 1, $array_quelle[0][1])
    _ArrayDelete($farbig, 3)
    ;~ _ArrayDisplay($farbig)
    ;~ MsgBox(0,"lv", _GUICtrlListViewGetItemCount($listview))
    ;~ MsgBox(0,"", _GUICtrlListViewGetItemText($listview, 45, 0))
    For $i = 0 to _GUICtrlListViewGetItemCount($listview)-1
    $datum_als_zahl1 = StringReplace(_GUICtrlListViewGetItemText($listview, $i, 1), ".", "")
    $datum_als_zahl2 = StringReplace($datum_als_zahl1, " ", "")
    $datum_als_zahl = StringReplace($datum_als_zahl2, ":", "")
    If $datum_als_zahl < $farbig[2] Then
    ;~ MsgBox(0,"",$datum_als_zahl & " " & $farbig[2])
    GUICtrlSetColor($item[$i+1], 0xFFD700)
    EndIf
    Next
    EndIf
    EndIf
    EndFunc ;==>_bereits_kopiert

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

    ;------------------------
    ;Drücken eines Buttons
    ;------------------------
    While 1
    $msg = GUIGetMsg()
    Select
    ;------------------------------------------------------------ Button Quellordner auswählen----------------------------------------
    Case $msg = $Quelle
    _Quellordner()
    _Quellordner2()

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

    ;------------------------------------------------------------ Button Beenden ----------------------------------------
    Case $msg = $beenden
    Exit

    ;------------------------------------------------------------ auf das "x" klicken ----------------------------------------
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

    [/autoit]
  • Einträge vom ListView nach dem erstellen einzeln einfärben

    • Tweaky
    • 27. Juni 2007 um 14:36

    Danke für das Beispiel, aber dabei muß ich die Farbe bereits während dem erstellen der ListView festlegen, oder ?(

    Ich kann es aber erst einfärben nachdem die Einträge der ListView alle da sind ;)

  • Einträge vom ListView nach dem erstellen einzeln einfärben

    • Tweaky
    • 27. Juni 2007 um 12:27

    Hi,
    es wird ein ListView erstellt.
    Nach dem erstellen möchte ich bestimmte Zeilen mit einer Farbe einfärben. (je nachdem wie das Dateidatum ist, dies weiß ich wie es geht ;-))
    Leider schaffe ich es nur das komplette ListView einzufärben (Zeile 183)

    Spoiler anzeigen
    [autoit]

    ;au3-Scripte, Bilder und Icons werden direkt in die exe-Datei übernommen und später beim ausführen in den @TempDir entpackt
    #include<Array.au3>
    #include<ArrayMore.au3>
    #include<File.au3>
    #include<GUIConstants.au3>
    #include<GuiListView.au3>

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

    Dim $Fehler1, $Fehler2, $Fehler3, $Quellordner, $Zielordner, $zielordner_korrekt, $quellordner_korrekt, $pfad_bilder_korrekt, $klappliste, $beenden2, $GUI2, $array_quelle, $pfad, $Pfad_ohne, $listview2, $listview, $fehler_zu, $format, $OK, $fehler, $foto_anfang, $Klappen2
    Dim $farbig, $datum_als_zahl

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

    ;log
    $log = @ScriptDir & "\" & "datum.txt"

    ;Standardpfad hier auswählen
    $Standard_Quelle = "W:\DCIM\" ;Quellpfad

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

    ;Klappliste umzubenennender Teil des Dateinamens eines Fotos
    $Klapp_um1 = "IMG" ;1. Eintrag
    $Klapp_um2 = "DSC" ;2. Eintrag
    $Klapp_umS = $Klapp_um1 ;Standard-Eintrag

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

    ;Klappliste für das Umbenennen der Dateien
    $Klapp1 = "XY" ;1. Eintrag
    $Klapp2 = "TR" ;2. Eintrag
    $KlappS = $Klapp1 ;Standard-Eintrag

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

    ;------------------------------------------------------------------------------------------------
    ;Erkennung der Fotos und Videos
    $foto_typ = "JPG" ;Quellfotos Typ "JPG"
    $video_anfang = "MVI" ;Quellvideos "MVI"
    $video_typ1 = "AVI" ;Quellvideos Typ "AVI"
    $video_typ2 = "THM" ;Quellvideos Typ "THM"

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

    ;------------------------------------------------------------------------------------------------

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

    ;------------------------
    ;GUI
    ;------------------------

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

    ;GUI erzeugen
    $GUI1 = GUICreate("Foto - Video - Tool", 460, 960, 0, 0)

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

    ;Buttons
    $Quelle = GUICtrlCreateButton("Quellordner auswählen", 250, 295, 50, 50, $BS_ICON)
    $beenden = GUICtrlCreateButton("Beenden", 250, 895, 50, 50, $BS_ICON)

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

    ;Beschriftung erstellen (Text, Rahmen, Farbe)
    GUICtrlCreateLabel(" Erkennung von Fotos", 310, 220, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, 0xB0E0E6)
    GUICtrlCreateLabel(" Initialien des Fotografen", 310, 255, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, 0xB0E0E6)
    GUICtrlCreateLabel(" Quellordner auswählen", 310, 310, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, 0xD3D3D3)

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

    ;Bild auf die Buttons erstellen
    GUICtrlSetImage($Quelle, "shell32.dll", 27)
    GUICtrlSetImage($beenden, "shell32.dll", 27)

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

    ;Beschriftung
    GUICtrlCreateLabel(" aktueller Quellpfad:", 10, 10, 440, -1, $SS_CENTERIMAGE)
    GUICtrlSetBkColor(-1, 0xFFD700)
    GUICtrlCreateLabel(" aktueller Zielpfad:", 10, 30, 440, -1, $SS_CENTERIMAGE)
    GUICtrlSetBkColor(-1, 0xFFC8D)

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

    ;Liste mit Dateien
    $listview = GUICtrlCreateListView("Bild|Datum", 10, 60, 234, 884, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_SORTDESCENDING));$LVS_SORTDESCENDING ;$LVS_SORTASCENDING
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)

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

    ;Spaltenbreite für die beiden Spalten festlegen
    _GUICtrlListViewSetColumnWidth($listview, 0, 93)
    _GUICtrlListViewSetColumnWidth($listview, 1, 120)

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

    ;Klapplisten für das Umbenennen der Dateien
    $foto_erkennung = GUICtrlCreateCombo($Klapp_umS, 250, 220, 50); erster Eintrag
    GUICtrlSetData(-1, $Klapp_um2, $Klapp_umS) ;weitere Einträge, getrennt durch | , zweiter Eintrag ist der Standard
    $Klappen = GUICtrlCreateCombo($KlappS, 250, 255, 50); erster Eintrag
    GUICtrlSetData(-1, $Klapp2, $KlappS) ;weitere Einträge, getrennt durch | , zweiter Eintrag ist der Standard

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

    ;------------------------------------------------------------------------------------------------------------------------------------------------

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

    ;------------------------
    ;sonstiges
    ;------------------------
    ;Quellordner öffnen
    _Quellordner()
    _Quellordner2()

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

    ;GUI anzeigen
    GUISetState(@SW_SHOW, $GUI1)

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

    ;------------------------------------------------------------------------------------------------------------------------------------------------

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

    ;------------------------
    ;Funktionen
    ;------------------------

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

    ;Quellordner auswählen
    Func _Quellordner()
    _GUICtrlListViewDeleteAllItems($listview)
    $Quellordner_ohne = FileSelectFolder("Bitte den Quellordner auswählen", "", "", $Standard_Quelle)
    $Quellordner = $Quellordner_ohne & "\"
    If $Quellordner_ohne = "a:\" Then
    MsgBox(16, "Ungültiger Quellordner", "Bitte wählen Sie einen korrekten Quellordner aus")
    _Quellordner()
    Else
    If ($Quellordner_ohne = "" Or StringInStr($Quellordner_ohne, ":") = 2) Then
    GUICtrlCreateLabel(" ", 110, 10, 330, -1, $SS_CENTERIMAGE)
    GUICtrlSetBkColor(-1, 0xFFD700)
    GUICtrlSetData(-1, $Quellordner_ohne)
    Else
    MsgBox(16, "Ungültiger Quellordner", "Bitte wählen Sie einen korrekten Quellordner aus")
    _Quellordner()
    EndIf
    EndIf
    EndFunc ;==>_Quellordner

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

    Func _Quellordner2()
    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl = DirGetSize($Quellordner, 3)
    Dim $array_quelle[$anzahl[1] + 1][2]

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

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle = 0
    Dim $array_quelle[$anzahl[1] + 1][2]
    $FileList = _FileListToArray($Quellordner, "*", 1)

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

    For $i = 1 To UBound($FileList) - 1
    $array_quelle[$i][0] = $FileList[$i]
    $time2 = FileGetTime($Quellordner & $FileList[$i], 0)
    $array_quelle[$i][1] = $time2[0] & $time2[1] & $time2[2] & $time2[3] & $time2[4] & $time2[5]
    Next

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

    ;Array sortieren nach Datum
    _ArraySort_2ary ($array_quelle, 1, 1)

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($FileList) - 1

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

    If (StringRight($FileList[$i], 4) = ".jpg") OR (StringRight($FileList[$i], 4) = ".avi") OR (StringRight($FileList[$i], 4) = ".thm") Then
    $time2 = FileGetTime($Quellordner & $FileList[$i], 0)
    $video2 = $time2[0] & "." & $time2[1] & "." & $time2[2] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]
    $item = GUICtrlCreateListViewItem($FileList[$i] & "|" & $video2, $listview)
    EndIf
    Next

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

    ;Einträge vom ListView sortieren
    Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    _GUICtrlListViewSort($listview, $B_DESCENDING, 1); $B_DESCENDING
    _GUICtrlListViewSort($listview, $B_DESCENDING, 1); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)

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

    _bereits_kopiert()

    EndFunc ;==>_Quellordner2

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

    Func _bereits_kopiert()
    If GUICtrlRead($Klappen) = $KlappS Then
    If Not FileExists($log) Then
    $file = FileOpen($log, 2)
    FileWrite($log, 20000101100000 & @CRLF)
    FileWrite($log, 20000101100000 & @CRLF)
    FileClose($file)
    Else

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

    Dim $farbig
    _FileReadToArray($log, $farbig)
    ;~ _ArrayDisplay($farbig)
    _ArrayInsert($farbig, 1, $array_quelle[0][1])
    _ArrayDelete($farbig, 3)
    ;~ _ArrayDisplay($farbig)
    For $i = 0 to _GUICtrlListViewGetItemCount($listview)
    $datum_als_zahl1 = StringReplace(_GUICtrlListViewGetItemText($listview, $i, 1), ".", "")
    $datum_als_zahl2 = StringReplace($datum_als_zahl1, " ", "")
    $datum_als_zahl = StringReplace($datum_als_zahl2, ":", "")
    ;~ If _GUICtrlListViewGetItemText($listview, 1) < $farbig[2] Then
    GUICtrlSetColor($listview, 0xFFD700)
    ;~ EndIf
    Next
    EndIf
    EndIf
    EndFunc ;==>_bereits_kopiert

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

    ;------------------------
    ;Drücken eines Buttons
    ;------------------------
    While 1
    $msg = GUIGetMsg()
    Select
    ;------------------------------------------------------------ Button Quellordner auswählen----------------------------------------
    Case $msg = $Quelle
    _Quellordner()
    _Quellordner2()

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

    ;------------------------------------------------------------ Button Beenden ----------------------------------------
    Case $msg = $beenden
    Exit

    ;------------------------------------------------------------ auf das "x" klicken ----------------------------------------
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

    [/autoit]

    EDIT:
    Hab die betreffende Zeile geändert. So wird die komplette ListView eingefärbt.

    @GrungeRocker
    kann du mir die Zeile ändern, verstehe nicht ganz was du meinst?

  • Taschenrechner

    • Tweaky
    • 26. Juni 2007 um 19:53

    Hi,
    Fehlermeldung ist weg, aber das Exit funktioniert noch nicht :D

  • Taschenrechner

    • Tweaky
    • 26. Juni 2007 um 18:09

    Hi,
    so mal schnell getestet :D
    bei deinem Menü funktioniert das "Exit" nicht. Es passiert nichts.

    Wenn ich bei dem Rechner auf einen der folgenden Buttons klicke

    Code
    * / + - % Sqrt ^ = ,


    kommt eine Fehlermeldung (siehe Bild)

    Bilder

    • Fehler.jpg
      • 36,06 kB
      • 308 × 172
  • ArrayMore.au3

    • Tweaky
    • 25. Juni 2007 um 23:24

    Ah, dies ist natürlich nicht schlecht.
    Muß ich gleich mal testen ;)

    Danke :D

    EDIT:
    Habe gerade deine Funktion "_Array2DSearch" gebraucht.
    Einwandfrei muß ich sagen :D

    Kannst du diese noch in deine Arraymore hinzufügen?

    Achso noch was:
    Wenn du mal Zeit und Lust hast :D kannst du als :rock:Array-Gott :rock: mal schauen, ob du folgendes schaffst:
    Filelisttoarray mit mehreren Dateitypen (az. B. jpg und avi) :D

  • ArrayMore.au3

    • Tweaky
    • 25. Juni 2007 um 18:03

    Hi BugFix
    hast du deine _ArrayDisplay2D in deiner arraymore vergessen :D

    Wäre nicht schlecht, wenn du diesen Tread auch noch in deine Sig mit aufnehmen könntest ;)

  • Scite - wurde was beim kompilieren geändert?

    • Tweaky
    • 23. Juni 2007 um 11:45

    habs oben geändert hab mich im Monat vertan.
    Hatte die Version vom 03.06 und habe jetzt die Version vom 18.06

    bei 03.06 hieß es "Compile using AutoIt3Wrapper"
    bei 18.06 heißt es wieder "Compile with Options"

    Wie schnell die Zeit vergeht :D

  • Scite - wurde was beim kompilieren geändert?

    • Tweaky
    • 23. Juni 2007 um 10:07

    Hi,
    habs geändert, doch leider kommt das Fenster immer noch :weinen:

  • Scite - wurde was beim kompilieren geändert?

    • Tweaky
    • 22. Juni 2007 um 23:08

    Hi, hab bisher den Scite vom 03.06 genutzt.
    Ich habe das Icon für die Exe in das Script eingetragen

    [autoit]

    #AutoIt3Wrapper_Icon =Icon.ico

    [/autoit]


    Dann habe ich das Script kompiliert mit "Compile with Options"
    Dann wurde sofort ohne Nachfrage die Exe erstellt.

    Habe jetzt die Version vom 18.06 installiert
    Wenn nun wieder kompiliere, dann kommt das Fenster wo ich noch mehr einstellen machen kann.

    Wie bekomme ich bei der neuen Version den alten Zustand wieder?

    Merci :D

    EDIT:
    Datum korrigiert :tongue:

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 21. Juni 2007 um 17:33

    TOMTOM25m
    oh englisch, nicht so mein Ding, deshalb lieber nicht :tongue:

    AspirinJunkie
    hm, hätte nicht gedacht, dass es so kompliziert wird, das ganze


    Werde wohl in Zukunft dem Tipp von ExBerliner folgen und TrayBackup verwenden :D

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 21. Juni 2007 um 15:06

    Hi,
    sieht gut aus :D
    Aber Verzeichnisse kann ich dadurch nicht kopieren, oder? :tongue:

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 21. Juni 2007 um 00:35

    wow, nicht schlecht das Teil, danke

    + Ordner sichern und dabei eine Datei/Ordner die nur im Ziel existiert und nicht in der Quelle kann gelöscht werden :rock:
    + Es kann ein Ordner mit dem aktuellen Datum erstellt werden :rock:
    + Es gibt eine Version, die nicht installiert werden muß :rock:

    - Hässliche Oberfläche :irre:

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 21. Juni 2007 um 00:14

    hm, also wenn ich dies so langsam richtig sehe, ist es fast besser ein separates Tool zum sichern zu verwenden, als es mit AutoIt zu erledigen :weinen:

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 20. Juni 2007 um 23:17

    Ein Beispiel
    Heute erstelle ich eine Sicherung mache.
    Morgen lösche ich eine Datei in der Quelle.
    Übermorgen mache ich wieder eine Sicherung.
    Dann bliebe ja die gelöschte Datei in der Sicherung erhalten.

    Dies ist aber nicht sinnvoll, da ja dann irgendwann die Sicherung mit uralten Dateien zugemüllt ist :tongue:

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 20. Juni 2007 um 21:03

    nicht schlecht, aber die aber alten Dateien werden bei dir nicht gelöscht, oder ?(

  • Sicherungstool - dauert zu lange

    • Tweaky
    • 20. Juni 2007 um 20:14

    Hi,
    ich habe ein Tool geschrieben, welches
    einelne Dateien oder ganze Laufwerke sichert.

    Dabei werden u. a. die alten Dateien im Zielordner gelöscht.

    Jedoch braucht das Script sehr lange mit dem erstellen des Arrays, wenn es viele Dateien (>2000) sind.
    Dann bricht das Script auch noch ab, weil das Array nicht erstellt werden konnte.

    Außerdem gibts Probleme, wenn Ordner versteckt sind

    Vielleicht kann man das Script auch einfacher schreiben.
    Vielleicht kanns einer von euch brauchen und kann mal drüberschauen

    Spoiler anzeigen
    [autoit]

    ;----------------------------------------------------------------
    ;Durch dieses Script können Dateien und Ordner gesichert werden
    ; - Ziellaufwerk vorhanden?
    ; - Quellverzeichnisse vorhanden?
    ; - genügend freier Speicher auf dem Ziellaufwerk?
    ; - Es wird ein Kopierfenster mit jeder einzelnen Datei eingeblendet
    ; Dort sieht man den prozentualen Vorschritt
    ; Dort sieht man deie Übertragunsgeschwindigkeit
    ; Dort sieht man die aktuell kopierte Datei
    ; - Es kann für einzelne Dateien oder komplette Laufwerke verwendet werden
    ; - Das Script kann mit Alt+x abgebrochen werden
    ;----------------------------------------------------------------

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

    #include<Date.au3>
    #include<Array.au3>
    #include<File.au3>
    #include<_ArrayDblDel.au3>

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

    ;Tastenkombination um das Programm zu beenden (Alt+x)
    HotKeySet("!x", "_beenden")

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

    ;Nummer des ersten zu kopierenden Ordners
    $start = 0

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

    ;Nummer des letzten zu kopierenden Ordners
    $ende = 0

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

    ;Nummer des letzten zu überspringenden Ordners
    $ende2 = 0

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

    Dim $ordner[$ende+1]
    Dim $ausschliessen[$ende2+1]
    Dim $array_gesamt_liste, $anzahl, $anzahl_array, $array_gesamt, $anzahl_array2, $array_gesamt2, $array_gesamt_ok2, $anzahl2, $anzahl_gesamt, $merken_alt, $ziel, $ordner_Dateiname, $quelle, $zielordner, $dateiname, $anzahl_auslassen_gesamt, $anzahl_unterm_strich, $dateigroesse, $dateigroesse_summe, $time_summe, $time_ende
    Dim $Entscheidung
    Dim $Quell_Pf_[$ende+1][2] ; [n][0] = Pfad; [n][1] = gerundete Größe
    Dim $goend = 0

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

    ;Datumsoptionen
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")

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

    ;folgende Ordner bei der Sicherung ausschließen
    $ausschliessen[0] = "V:\_Programme" ; z. B. "D:\alt"
    ;~ $ausschliessen[1] = "V:\__Tipps" ; z. B. "D:\alt"
    ;~ $ausschliessen[2] = "V:\_Vista Tipps" ; z. B. "D:\alt"

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

    ;**************************** Einzelne Ordner kopieren ********************************************************************

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

    ;Quell-Laufwerk
    ;~ $Quell_LW = "D:\" ;entweder direkte Eingabe des Laufwerksbuchstaben z. B. "E:\" oder Für Laufwerk auf dem sich das Script befindet: StringLeft(@ScriptDir, 3)

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

    ;~ ;Quell-Ordner (ohne Laufwerksbuchstabe)
    ;~ $ordner[0] = "Video"
    ;~ $ordner[1] = "Icons"

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

    ;~ ;Quell-Ordner zusammengesetzt
    ;~ $Quell_Pf_[0][0] = $Quell_LW & $ordner[0] & "\"; < < < < < < < < < < < < < < < < < < ändern > > > > > > > > > > > > > > > > > > >
    ;~ $Quell_Pf_[1][0] = $Quell_LW & $ordner[1] & "\"; < < < < < < < < < < < < < < < < < < ändern > > > > > > > > > > > > > > > > > > >

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

    ;~ ;Ziel-Laufwerk
    ;~ $Ziel_LW = "C:\"
    ;~ $Ziel_Pf = $Ziel_LW & "Sicherung Internet\" & $sNewDate & "\"

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

    ;***************************************************************************************************************************

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

    ;**************************** komplettes Laufwerk kopieren ********************************************************************

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

    ;Quellpfade anpassen
    $Quell_LW = "V:\" ;StringLeft(@ScriptDir, 3) ;entweder direkte Eingabe des Laufwerksbuchstaben z. B. "E:\" oder Für Laufwerk auf dem sich das Script befindet: StringLeft(@ScriptDir, 3) < < < < < < < < < < < < < < < < < < ändern > > > > > > > > > > > > > > > > > > >
    $Quell_Pf_[0][0] = $Quell_LW

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

    ;Quell-Ordner (ohne Laufwerksbuchstabe)
    $ordner[0] = ""

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

    ;Zielpfade anpassen
    $Ziel_LW = "C:\"
    $Ziel_Pf = $Ziel_LW & "TEST\USB-Stick" & "\"

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

    ;***************************************************************************************************************************

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

    ;alles starten
    _check()

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

    ;***********************************************************************
    ; Funktion komplettes Array mit allen zu kopierenden Dateien erstellen *
    ;***********************************************************************

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

    Func _gesamt_array_erstellen()

    ;Alle Hauptordner sichtbar machen ("versteckt" deaktivieren)

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

    ;~ For $z = 0 to $ende
    ;~ FileSetAttrib($Quell_Pf_[$z][0] & "*", "-H")
    ;~ Next

    ;leeres Array erstellen
    $array_gesamt = _ArrayCreate("")

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

    ;Dateien zum kopieren zusammentragen
    For $q = $start to $ende
    $anzahl = DirGetSize($Quell_Pf_[$q][0], 1)
    $anzahl_array = $anzahl[1]
    $ordner_aktuell = $Quell_Pf_[$q][0]
    _makecopylist($ordner_aktuell)
    $anzahl_gesamt += $anzahl_array

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

    ;Prüfung, ob das Quell-Array erstellt werden konnte
    If IsArray($array_gesamt_liste) Then
    Else
    MsgBox(16,"Fehler beim erstellen des Quell-Arrays", "Das Array für die Dateien im Quellordner konnte nicht erstellt werden." & @Cr & "Eine Ursache kann zum Beispiel ein versteckter Ordner sein.")
    Exit
    EndIf

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

    ;die Dateien jedes zu kopierenden Ordners dem Gesamt-Array hinzufügen
    For $h = $start to UBound($array_gesamt_liste)-1
    If $array_gesamt_liste[$h] = $Quell_Pf_[$q][0] & "Recycled" Then ; wenn das Wort "Recycled" (Papierkorb) erscheint, dies nicht in das Array eintragen
    Else
    _ArrayAdd($array_gesamt, $array_gesamt_liste[$h])
    EndIf
    Next

    ;Anzahl der zu kopierenden Dateien (ohne die ausgelassenen Ordner)
    For $f = $start to $ende2
    If FileExists($ausschliessen[$f]) Then
    $anzahl_auslassen = DirGetSize($ausschliessen[$f], 1)
    $anzahl_auslassen_array = $anzahl_auslassen[1]
    Else
    $anzahl_auslassen_array = 0
    EndIf
    $anzahl_auslassen_gesamt += $anzahl_auslassen_array
    Next

    If $Entscheidung = 1 Then
    $verrechnen = 1 ;da im Papierkorb 2 Dateien drinn sind und der Papierkorb selbst als Datei gesehen wird (also 2-1=1)
    Else
    $verrechnen = 0 ;keine Beeinflussung
    EndIf
    $anzahl_unterm_strich = $anzahl_gesamt - $anzahl_auslassen_gesamt - $verrechnen

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

    Next

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

    ;Die erste (leere) Linie des Gesamt-Array löschen
    _ArrayDelete($array_gesamt, 0)
    ;~ _ArrayDisplay($array_gesamt)

    EndFunc ;==>_gesamt_array_erstellen

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

    ;***********************************************************************
    ; Funktion einzelne Arrays mit allen zu kopierenden Dateien erstellen *
    ;***********************************************************************

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

    ;Funktion zum zusammentragen der Dateien
    Func _makecopylist($dir)
    $FileList = _FileListToArray($dir, "*", 0)
    If (Not IsArray($FileList)) And (@error = 1) Then SetError(-1)
    _ArrayDelete($FileList,0)
    $i = 0
    While ($i < UBound($FileList))
    If (FileGetAttrib($dir & '\' & $FileList[$i]) = "D") Then
    $tmp = _makecopylist($dir & '\' & $FileList[$i])
    $tmpdir = $FileList[$i] & '\'
    $dateien_anzahl = DirGetSize($dir & '\' & $FileList[$i], 1)
    $dateien_anzahl_array = $dateien_anzahl[1]
    _ArrayDelete($FileList, $i)
    If $dateien_anzahl_array > 0 Then
    For $j = 0 To UBound($tmp) -1
    _ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j])
    Next
    EndIf
    $i = $i + UBound($tmp) - 1
    EndIf
    $i=$i+1
    WEnd

    _ArrayDblDel($FileList)

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

    If $Entscheidung = 1 Then
    $zahl_addieren = 1
    ElseIf $Entscheidung = 0 Then
    $zahl_addieren = 0
    EndIf
    ;~ ConsoleWrite($anzahl_array & " " & UBound($FileList)+$zahl_addieren & @Lf)
    If $anzahl_array = (UBound($FileList)+$zahl_addieren) Then
    $array_gesamt_liste = _ArrayCreate("")
    For $z = 0 to UBound($FileList)-1
    _ArrayInsert($array_gesamt_liste, $z, $dir & $FileList[$z])
    Next
    _ArrayDelete($array_gesamt_liste, UBound($FileList))
    Else
    Return $FileList
    EndIf
    EndFunc ;==>_makecopylist

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

    ;************************************
    ; Funktion zum kopieren der Dateien *
    ;************************************

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

    ;Funktion zum kopieren
    Func _kopieren()
    $speed = 0
    Local $i
    Local $count = 0

    ;Fortschritts-Anzeige einblenden
    ProgressOn("Bitte warten - Die Dateien werden in den Zielordner kopiert", "Dateien :", "0 Dateien", -1, 300, 16)

    ;Für jedes Element des Gesamt-Array ...
    For $i = 0 to UBound($array_gesamt) -1

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

    ;Zielordner der einzelnen Dateien festlegen ...
    For $m = $start to $ende
    If StringInStr($array_gesamt[$i], $Quell_Pf_[$m][0]) Then
    $ordner_Dateiname = StringReplace($array_gesamt[$i], $Quell_Pf_[$m][0], $ordner[$m] & "\")
    $dateiname = StringRight($array_gesamt[$i], StringLen($array_gesamt[$i]) - StringInStr($array_gesamt[$i], "\", 0, -1))
    $quelle = $Quell_Pf_[$m][0]
    $ziel = $Ziel_Pf & $ordner_Dateiname
    $zielordner = $Ziel_Pf & $ordner[$m]
    EndIf
    Next

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

    ;Für jeden zu überspringenden Ordner ...
    For $h = $start to $ende2
    If StringinStr($array_gesamt[$i], $ausschliessen[$h]) Then ;Ordner überspringen
    Else ;Dateien kopieren
    $fromCrc = FileGetAttrib($array_gesamt[$i]) & FileGetSize($array_gesamt[$i]) & FileGetTime($array_gesamt[$i]) ;Eigenschaften Quell-Dateien
    $toCrc = FileGetAttrib($ziel) & FileGetSize($ziel) & FileGetTime($ziel) ;Eigenschaften Ziel-Dateien

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

    $count += 1

    ProgressSet($count * 100 / $anzahl_unterm_strich, _
    "Quelle: " & $quelle & @LF & "Ziel: " & $zielordner & @LF & $dateiname, _
    Round(($count * 100 / $anzahl_unterm_strich), 0) & " % " & @TAB & $count & " von " & $anzahl_unterm_strich & " fertig" & @TAB & $speed & " MB/s")

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

    If Fileexists($Ziel) And ($fromCrc = $toCrc) Then ;nicht kopieren
    Else ;kopieren
    FileSetAttrib($Ziel_Pf & $ordner_Dateiname, "-R") ;Schreibschutz entfernen

    ;Dateigröße und benötigte Zeit ermitteln
    $dateigroesse = Round(FileGetSize($array_gesamt[$i]) / 1024 / 1024, 0)
    $dateigroesse_summe += $dateigroesse
    $time_start = TimerInit()

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

    ;kopieren
    FileCopy($array_gesamt[$i], $Ziel_Pf & $ordner_Dateiname, 9)

    ;benötigte Zeit ermitteln
    $time_ende = TimerDiff($time_start) / 1000
    $time_summe += $time_ende
    $speed = Round($dateigroesse_summe / $time_summe, 1)
    EndIf
    EndIf
    Next
    Next

    ;Fortschritts-Anzeige beenden
    ProgressSet(100, "fertig", "alles kopiert")
    Sleep(500)
    ProgressOff()

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

    EndFunc ;==>_kopieren

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

    ;****************************************************************
    ; Funktion komplettes Array mit Dateien im Zielordner erstellen *
    ;****************************************************************

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

    Func _gesamt_array_erstellen2()

    ;existiert der Zielordner?
    If NOT FileExists($Ziel_Pf) Then
    MsgBox(16,"Zielordner existiert nicht", "Eventuell trat während dem Kopieren ein Fehler auf")
    Exit
    EndIf

    ;notwendig, da sonst eine Fehlermeldung erscheint
    _FileCreate($Ziel_Pf & "wird gleich wieder gelöscht.txt")

    ;leeres Array erstellen
    $array_gesamt2 = _ArrayCreate("")

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

    ;Dateien zum kopieren zusammentragen
    $anzahl2 = DirGetSize($Ziel_Pf, 1)
    $anzahl_array2 = $anzahl2[1]
    $merken_alt = 0

    _makecopylist2($Ziel_Pf)

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

    ;Prüfung, ob das Ziel-Array erstellt werden konnte
    If IsArray($array_gesamt_ok2) Then
    Else
    MsgBox(16,"Fehler beim erstellen des Quell-Arrays", "Das Array für die Dateien im Quellordner konnte nicht erstellt werden.")
    Exit
    EndIf

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

    ;die Dateien jedes zu kopierenden Ordners dem Gesamt-Array hinzufügen
    For $h2 = 0 to UBound($array_gesamt_ok2)-1
    _ArrayAdd($array_gesamt2, $array_gesamt_ok2[$h2])
    Next

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

    ;Die erste (leere) Linie des Gesamt-Array löschen
    _ArrayDelete($array_gesamt2, 0)

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

    EndFunc ;==>_gesamt_array_erstellen

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

    ;**********************************************************************
    ; Funktion einzelne Arrays mit allen Dateien im Zielordner erstellen *
    ;**********************************************************************

    ;Funktion zum zusammentragen der Dateien
    Func _makecopylist2($dir2)
    $FileList2 = _FileListToArray($dir2, "*", 0)
    If (Not IsArray($FileList2)) And (@error = 1) Then SetError(-1)
    _ArrayDelete($FileList2,0)
    $v = 0
    While ($v < UBound($FileList2))
    If FileGetAttrib($dir2 & '\' & $FileList2[$v]) = "D" Then
    $tmp2 = _makecopylist2($dir2 & '\' & $FileList2[$v])
    $tmpdir2 = $FileList2[$v] &'\'
    $dateien_anzahl2 = DirGetSize($dir2 & '\' & $FileList2[$v], 1)
    $dateien_anzahl_array2 = $dateien_anzahl2[1]

    _ArrayDelete($FileList2, $v)

    If $dateien_anzahl_array2 > 0 Then
    For $h = 0 To UBound($tmp2) - 1
    _ArrayInsert($FileList2, $h + $v, $tmpdir2 & $tmp2[$h])
    Next
    EndIf
    $v = $v + UBound($tmp2) - 1
    EndIf
    $v=$v+1
    WEnd

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

    _ArrayDblDel($FileList2)

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

    $merken = UBound($FileList2)
    If $merken > $merken_alt Then
    $merken_alt = $merken
    Endif
    If $anzahl_array2 <= $merken_alt Then
    $array_gesamt_ok2 = _ArrayCreate("")
    For $o = 0 to UBound($FileList2)-1
    _ArrayInsert($array_gesamt_ok2, $o, $dir2 & $FileList2[$o])
    Next
    _ArrayDelete($array_gesamt_ok2, UBound($FileList2))
    ;~ _ArrayDisplay($array_gesamt_ok2)
    Else
    Return $FileList2
    EndIf

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

    EndFunc ;==>_makecopylist

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

    ;*******************************************************************************
    ; Funktion vergleichen ob die Datei in der Quelle existiert und evtl. löschen *
    ;*******************************************************************************

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

    Func _vergleichen()
    ;~ _ArrayDisplay($array_gesamt)
    ;~ _ArrayDisplay($array_gesamt2)

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

    For $u = 0 to UBound($array_gesamt2)-1
    $ordner_dateiname_loeschen = StringReplace($array_gesamt2[$u], $Ziel_Pf, "")
    $ordner_loeschen = StringLeft($array_gesamt2[$u], StringInStr($array_gesamt2[$u], "\", 0, -1))
    $search = _ArraySearch($array_gesamt, $ordner_dateiname_loeschen, 0, 0, 0, 1)

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

    If $search = "-1" Then
    FileDelete($array_gesamt2[$u])
    $dir_loe = DirGetSize($ordner_loeschen, 1)
    $dir_loeschen = $dir_loe[1]
    If $dir_loeschen = 0 Then
    DirRemove($ordner_loeschen, 1)
    EndIf
    EndIf
    Next
    EndFunc

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

    ;---------------------------------------------------------
    ; Funktionen Datensicherung Internet | <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    ;---------------------------------------------------------

    Func _check()
    ;Prüfung, ob es sich um ein zu sicherndes Laufwerk (3) handelt, oder um mehrere Ordner (größer 3)
    If StringLen($Quell_Pf_[0][0]) = 3 Then
    $Entscheidung = 1
    $Pruefung = $Ziel_Pf & $sNewDate
    Else
    $Entscheidung = 0
    $Pruefung = $Ziel_Pf
    EndIf

    ;Prüfung Ziellaufwerk vorhanden?
    If FileExists($Ziel_LW) Then ;Prüfung Quellverzeichnisse vorhanden?
    $tmp = 0
    For $i = $start to $ende
    If Not FileExists($Quell_Pf_[$i][0]) Then ;Fenster Quellordner fehlt
    MsgBox(16, "Quellordner fehlt", "Der Ordner " & $Quell_Pf_[$i][0] & " existiert nicht. Bitte kontrollieren")
    $goend = 1
    Else ;Speicherplatz ermitteln und runden
    $Quell_Pf_[$i][1] = Round((DirGetSize($Quell_Pf_[$i][0])/1024 / 1024), 0)
    $tmp +=($Quell_Pf_[$i][1]) ;Größe zusammenrechnen
    EndIf
    Next

    If $goend = 1 Then Exit ;Quellordner fehlt, dann Script beenden
    $Ziel_LW_Gr_Ru = Round(DriveSpaceFree($Ziel_LW), 0)

    ;Funktion Größenvergleich der Quellverzeichnisse mit dem Ziellaufwerk
    If $tmp > $Ziel_LW_Gr_Ru Then ;Fenster zu wenig Speicherplatz
    Msgbox(16,"Zu wenig Speicherplatz vorhanden","Geben Sie mindestens " & $tmp - $Ziel_LW_Gr_Ru & " MB Speicherplatz auf " & $Ziel_LW & " frei")
    Exit
    Else;Alles OK, Datensicherung beginnt
    _gesamt_array_erstellen()
    _kopieren()
    _gesamt_array_erstellen2()
    _vergleichen()
    EndIf
    Else ;Fenster Ziellaufwerk fehlt
    $ret = MsgBox(5 + 64, "Datensicherung Internet", "Ziellaufwerk " & $Ziel_LW & " nicht vorhanden")
    If $ret = 4 Then ;Wiederholen wurde ausgewählt, Funktion startet von vorne
    _check()
    Else ;Abbrechen wurde ausgewählt, dann Script beenden
    EndIf
    EndIf

    ;Zielverzeichnis umbenennen in das aktuelle Datum (nur wenn ein komplettes Laufwerk gesichert wird)
    If $Entscheidung = 1 Then
    DirMove($Ziel_Pf & DriveGetLabel(StringLeft($Quell_LW, 2)) & " (" & StringLeft($Quell_LW, 1) & ")", $Ziel_Pf & $sNewDate, 1)
    Else
    EndIf

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

    EndFunc ;==>_check

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

    ;Beim Drücken von Alt+x wird das Programm beendet
    Func _beenden()
    Exit
    EndFunc ;==>_beenden

    [/autoit]
  • Versionsnummer aus dem Dateinamen des Scriptes ermitteln

    • Tweaky
    • 20. Juni 2007 um 18:38

    ja klar da habt ihr recht,
    hab aber keine Lust die Versionsnummer von Hand zu ändern :D (zu faul dazu :P)

    Die Sachen dir ich schreibe, verwendet sowieso nur jemand anderer und ich selbst.
    Und der Dateiname wird nicht umbenannt.
    Deshalb lasse ich den Dateinamen auslesen.

    Danke nochmals :tongue:

  • Versionsnummer aus dem Dateinamen des Scriptes ermitteln

    • Tweaky
    • 20. Juni 2007 um 17:54

    @th.meger
    danke, genau das wollte ich :D

    @pee
    aber wenn der User die Datei im gleichen Schema also,
    z. B. in Test tool 04 Test03 umbenennt, bleibt doch alles beim alten, da ich ja den Dateinamen auslese und davon dann die Versionsnummer ermittle.
    Wie würdest du es machen. Vielleicht gefällt mir dies ja besser ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™