Packer

  • Hi,

    ich würde dann gerne auch mal mein erstes "n00b-Projekt" vorstellen. Hat mich insgesamt ca. 3 Tage gekostet mit ausführlicher und kompetenter Hilfe hier aus dem Forum. Dem Programm können Dateien hinzugefügt werden die dann in einen angegebenen Zielpfad automatisch gepackt werden (für jede Datei wird ein einzelnes Archiv angelegt).

    Der Code ist sicher nicht perfekt (ist vielleicht auch verständlich da ich erst seit 3 Tagen mit AutoIT übe) aber das Programm macht das was es soll :pinch: . Natürlich gibt es das ganze so schon und besonders hilfreich ist das Programm jetzt auch nicht unbedingt aber ich hab schon was gelernt.
    Verbesserungsvorschläge werden gerne angenommen.

    Edit: Hab ganz vergessen zu sagen, dass leider der wichtigste Teil in dem Programm (der die Dateien packt) nicht von mir geschrieben wurde, sondern von BugFix hier aus dem Forum.

  • Schön gemacht.
    Natürlich hab ich wieder ein paar Tips:
    1. Wenn du Variablen nicht brauchst, dann brauchst du sie auch nicht hinschreiben. Z.B. $lbl_AddFile, $Form1_1, ...
    2. Beide _GUICtrlListView_AddColumn können raus. Du kannst die Spaltenüberschriften auch direkt in GUICtrlCreateListView anegeben.
    3. Da sind zwei Labels mit dem Namen Ordner. Wenn ich jetzt nicht den Code kennen würde, würde ich nicht wissen, wofür das ist. Quellpfad oder Zielpfad?
    4. Dim möglichst nicht verwenden. Nur Global und Local. "Dim $GetArchivPath" muss als "Global $GetArchivPath" an den Anfang des Scripts. Du brauchst übriegens die Deklarationen nicht untereinander schreiben, du kannst sie auch mit einem Komma trennen.
    5.

    [autoit]

    GUICtrlSetData($btn_PathArchive, "...Durchsuchen")
    $GetArchivePath = FileSelectFolder("Platz zum speichern der Archive auswählen...", "Bibliotheken\Dokumente", "Alle Dateien (*.*)")
    If StringLen($GetArchivePath) = 0 Then
    GUICtrlSetData($btn_PathArchive, "...Durchsuchen")
    Else
    GUICtrlSetData($btn_PathArchive, $GetArchivePath)
    EndIf

    [/autoit]


    Zweimal GUICtrlSetData($btn_PathArchive, "...Durchsuchen") ist Schwachsinnig. Wenn StringLen($GetArchivePath) = 0 soll er halt nix ändern.

    [autoit]

    GUICtrlSetData($btn_PathArchive, "...Durchsuchen")
    $GetArchivePath = FileSelectFolder("Platz zum speichern der Archive auswählen...", "Bibliotheken\Dokumente", "Alle Dateien (*.*)")
    If $GetArchivePath <> "" Then GUICtrlSetData($btn_PathArchive, $GetArchivePath)

    [/autoit]


    So das wärs erstmal.

  • Hi,

    [autoitSchön gemacht.[/autoit]

    Danke :)

    [autoit]

    Wenn du Variablen nicht brauchst, dann brauchst du sie auch nicht hinschreiben. Z.B. $lbl_AddFile, $Form1_1, ...

    [/autoit]

    Wo meinst du das genau? Ich benutze die Variable $lbl_AddFile nur da wo das Label auch erstellt wird...

    Zitat

    Beide _GUICtrlListView_AddColumn können raus. Du kannst die Spaltenüberschriften auch direkt in GUICtrlCreateListView anegeben.

    Danke, das wusste ich auch noch nicht :D

    Zitat

    Da sind zwei Labels mit dem Namen Ordner. Wenn ich jetzt nicht den Code kennen würde, würde ich nicht wissen, wofür das ist. Quellpfad oder Zielpfad?

    Danke für den Hinweis, ist ausgebessert :)

    Zitat

    Dim möglichst nicht verwenden.

    Okay, ist geändert.

    Zitat

    Zweimal GUICtrlSetData($btn_PathArchive, "...Durchsuchen") ist Schwachsinnig.

    Jop, stimmt :D

    Ich hätte für mich selber gerne die Funktion drinnen, dass mehrere Elemente gleichzeitig hinzugefügt werden können (bzw. man im FileDialog mehrere auswählen kann), weil das ständige auf- und wieder zumachen des OpenDialogs nervt etwas :wacko: Mal schaun was sich da machen lässt...

    Edit: Na gut da muss man einfach den Parameter "4" übergeben :D

  • So, ab jetzt kann man auch mehrere Dateien gleichzeitig hinzufügen :)

    (Aktuellste Version immer im ersten Post).

  • Wo meinst du das genau? Ich benutze die Variable $lbl_AddFile nur da wo das Label auch erstellt wird...


    Ja eben nur da wo du es erstellst. Verwendest du es dann noch später? Nein oder?
    Also wozu dann die Variable. Du brauchst sie nur, wenn du das Label zu Laufzeit änderst, sowie die Buttons.

    Ein Script sollte immer so lang wie nötig, aber so kurz wie möglich sein. Um so kürzer es ist, umso überschaubarer ist es. Und wenn man Fehler hat, findet man die auch schneller.