suche dll zum komprimieren von exen und Bildern

  • hi


    wie schon in der Überschrift gesagt... ich suche eine dll die folgendes beinhaltet...

    Datei komprimieren
    Datei dekomprimieren
    (Dateien/Ordner komprimieren)
    (Dateien/Ordner dekomprimieren)

    die Kompression sollte (wer häts änderst gedacht) möglichst stark sein, kann dafür auch etwas länger (aber nicht zu lange :P ) dauern... das ganze sollte "keine Fragen stellen" also nicht irgendwie bei jedem entpacken nachfragen ob entpackt werden soll oder so.

    Format ist mir egal... .zip.rar .hastenichtgesehn...

    und last but not least ^^ relativ gut dokumentiert sein :)

    Im englischen Forum hab ich irgendwie nichts gefunden und Google spuckt nur Demoversionen aus die nachfragen etc.

    so... ich bin gespannt auf die eierlegenden Wollmilchsäue die ihr mir hoffentlich präsentieren werdet ^^

    grez


    derda

  • Ja, so geht´s mir ja auch. Es fehlt so eine tolle funktion in AutoIt.

    Mir macht da die Formulierung von der 'Run' funktion Schwierigkeiten.
    Wenn man ein simples Beispiel hätte wäre man schon weiter, gel!

    Grüße, Fintan.

  • Hallo!

    soll das Teil mehr zum Archivieren da sein, also
    a, z.B. alle Bilder die älter als 30 Tage sind in ein Archiv verschieben

    oder mehr
    "on-the-Fly" während des Programmstartes (-laufes) eine Datei aus einem Archiv holen.

    Soll das nur auf Deinem Rechner oder auf x-Rechnern laufen????

    arbeite äußerst zufrieden mit dem zip.exe und unzip.exe von info-zip

    hab seit 2 Wochen ein neues Programm gebaut, daß aus einer Sicherung (ca. 700 gezippte Log-Files eines Kundentesttools) die gewünschte Einzeldatei entzippt und in einer List-Box darstellt.
    Funktioniert zufriedenstellend.
    (da das jetzt auf x-Rechnern laufen muß, hab ich den unzip.exe Code mit eingepackt und lass den bei Programmstart nach %temp% entpacken.

    Grüße

    German

  • hi

    es sollte eher zum archivieren sein und es sollte auf x-Rechnern laufen hast du mal ein Beispielcode für die Benutzung der zwei Dateien?

    grez

    derda

  • Hallo Derda!

    nicht komplett durchgetestet, war heute 12h auf der Maloche, mein Akku ist jetzt leer:
    zip.exe ist im Pfad bei mir, ansonsten mit FileInstall aus dem include nehmen und nach %tempDir% schieben.

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

    ; test_54.au3
    ; zippen Muster für Usergroup

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

    #include <Date.au3>
    #include <string.au3>
    #include <file.au3>
    #include <array.au3>

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

    ; Achtung zip.exe ist schon im Suchpfad!!

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

    $PROTEXTMON = @YEAR & @MON
    $datelong = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC
    $zipfile= "F:\hilf\derda" & @YEAR & @MON & @MDAY & @HOUR & @MIN
    $PROTFILE= "f:\hilf\derda.log"
    $source_path="f:\autoit"
    $searchstring=".*\.[Aa]+[Uu]+[3]+$"
    ; $searchstring="[Ss].*"

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

    $FolderList=_FileListToArray($source_path & "\", "*.*",1) ; Flag 2 = nur Ordner

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

    If (Not IsArray($FolderList)) OR @ERROR > 0 Then
    ; MsgBox (0,"","Keine Dateien gefunden gefunden.")
    else
    EndIf

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

    For $i = 1 To $FolderList[0]
    $testit= StringRegExp($FolderList[$i], $searchstring)
    if $testit=1 then ; Datei passend zu Suchumster gefunden
    ; msgbox(0,"DEBUGG", $FolderList[$i])
    $Befehl="zip -j " & $zipfile & " " & $source_path & "\" & $FolderList[$i]
    $zipit=runwait($Befehl, @TempDir, @SW_HIDE)
    ; msgbox(0,"Ergebnis vom zippen ist", $zipit)
    if $zipit=0 then
    _protoutput($PROTFILE, $source_path & "\" & $FolderList[$i] & " --> " & $zipfile & " OK")
    else
    _protoutput($PROTFILE, "ZIP-FEHLER " & $zipit & " BEIM PACKEN VON " & $source_path & "\" & $FolderList[$i])
    EndIf
    sleep (250) ; mit dem Wert spielen, mindestens auf 30 lassen, sonst ist die CPU-Last auf 100%
    EndIf
    Next

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

    Func _protoutput($PROTFILE,$TEXT)

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

    $datelong = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC

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

    $pfile=Fileopen($Protfile,1)
    ; Check if file opened for reading OK
    If $pfile = -1 Then
    MsgBox(64, "PROTOKOLLDATEI" & " " & $PROTFILE, "kann nicht geöffenet werden",10)
    Exit
    EndIf

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

    FileWrite($pfile, $datelong & " " & $TEXT & @CRLF)

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

    FileClose($pfile)

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

    EndFunc

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

    Gruss aus dem Spessart

    German