Problem mit Array Variable

  • Hallo,

    bräuchte mal einen Tip. Eigentlich Funktioniert mein Skript, nur gibt es folgenden Fehler. Kommt eine Datei in das Eingangsverzeichnis. In der Zeit zwischen $dir1 und $dir2 rein. Bricht das Skript ab und meldet das in der in $dir1 (nichts ist Error). Was kann ich da noch machen. Wo seht Ihr noch Verbesserungen in dem Skript?

    Was passiert.
    -> Aus dem PDFCreator kommen PDF Dokumente die gesammelt werden sollen.
    -> nach Zeit werden Sie verschoben um Sie zu trennen (von neu eintreffenden in der Verarbeitungszeit)
    -> dann werden Sie verbunden (Java Tool)
    -> alte Datein werden Archiviert
    -> die Fertige Datei wird nach Datum und Uhrzeit benannt verschoben

    MsgBox ist natürlich aktuell nur zur Kontrolle und die Schleife Endet wird dann natürlich kein Exit geben.


    [autoit]


    #include <File.au3>

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

    $folder1 = "U:\PDF\ausPDFCreator\" ;Eingang
    $folder2 = "U:\PDF\zumerstellen\" ;verschieben für erstellen einer PDF
    $folder3 = "U:\PDF\erledigt\" ;nacherstellen archiveren
    $folder4 = "U:\PDF\Fertig\" ;erstellte Ausgangsdatei

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

    While 1
    sleep (1500)
    $dir1 = _FileListToArray($folder1, '*.pdf')
    If not @error Then
    MsgBox(0, "Test1", $dir1[0],1)
    EndIf
    sleep (1500)
    $dir2 = _FileListToArray($folder1, '*.pdf')
    If not @error Then
    MsgBox(0, "Test2", $dir2[0],1)
    if ($dir2[0] > 1) and ($dir1[0] > 1) Then
    If($dir1[0]=$dir2[0]) Then
    MsgBox (0,"Gleich", "Keine neuen Ausdrucke",1)
    FileMove ($folder1&"*.pdf",$folder2&"*.pdf")
    sleep (1000)
    run ('cmd /c java -jar "C:\\Program Files\\PDF Split and Merge Basic\\lib\\pdfsam-console-2.4.1e.jar" -o "U:\fertigedatei.pdf" -d "U:\\PDF\\zumerstellen\\" concat',"", @SW_HIDE)
    Sleep (1000)
    FileMove ($folder2&"*.pdf",$folder3&"*.pdf")
    $t=filegettime("U:\fertigedatei.pdf",1,1)
    MsGBox(0,"Test3",$t,1)
    FileMove ("U:\fertigedatei.pdf",$folder4&$t&".pdf",1)
    Exit
    EndIf
    EndIf
    EndIf
    WEnd

    [/autoit]

    Danke

    Steffen

    Einmal editiert, zuletzt von SCCSSF (29. Januar 2013 um 09:49)

  • Ungetestet:

    Script
    [autoit]


    #include <File.au3>

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

    $folder1 = "U:\PDF\ausPDFCreator\" ;Eingang
    $folder2 = "U:\PDF\zumerstellen\" ;verschieben für erstellen einer PDF
    $folder3 = "U:\PDF\erledigt\" ;nacherstellen archiveren
    $folder4 = "U:\PDF\Fertig\" ;erstellte Ausgangsdatei

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

    While 1
    sleep (1500)
    $dir1 = _FileListToArray($folder1, '*.pdf')
    sleep (1500)
    $dir2 = _FileListToArray($folder1, '*.pdf')
    If not @error and Isarray($dir1) Then
    If($dir1[0]=$dir2[0]) Then
    MsgBox (0,"Gleich", "Keine neuen Ausdrucke",1)
    FileMove ($folder1&"*.pdf",$folder2&"*.pdf")
    sleep (1000)
    run ('cmd /c java -jar "C:\\Program Files\\PDF Split and Merge Basic\\lib\\pdfsam-console-2.4.1e.jar" -o "U:\fertigedatei.pdf" -d "U:\\PDF\\zumerstellen\\" concat',"", @SW_HIDE)
    Sleep (1000)
    FileMove ($folder2&"*.pdf",$folder3&"*.pdf")
    $t=filegettime("U:\fertigedatei.pdf",1,1)
    MsGBox(0,"Test3",$t,1)
    FileMove ("U:\fertigedatei.pdf",$folder4&$t&".pdf",1)
    Exit
    EndIf
    WEnd

    [/autoit]

    Hier prüfe ich es mit IsArray() nach

    €: was soll eigentlich passieren wenn das neune Document, nach dem $dir2 deklariert wurde aber bevor $dir1 wieder dran ist, eingefügt wird?

    Achso du prüfst nur nach ob er immer noch neue Dokumente kommen, sorry habe das nicht sofort verstanden^^

    4 Mal editiert, zuletzt von Zeitriss (28. Januar 2013 um 22:05)

  • Hallo Zeitgeist,

    Version 1 verstehe ich, werde ich morgen früh mal testen.

    Version 2 komme ich nicht nach dem Sinn.

    Ich gehe davon aus das in dem Verzeichnis keine Dateien drin sind also ist $dir1 immer leer (Error).

    Deshalb prüfe ich es ja immer abwechselnd um Unterschiede zu erkennen. Zeit wird später auch auf 3-5 Sekunden erhöht.

    Du vergleichst ja nur Anfang mit Zwischenschritt.

    Und genau wo ich dir dies erklären will hast du es auch schon gemerkt ;)

    Steffen

  • Unabhängig von deinem Problem: Warum machst du das so kompliziert?
    Das kannst du ohne Java-Gedöns und sauber per CMD-Line-Befehlen des PDFCreators erledigen. Und das Beste: Diese Befehle wurden schon in eine AutoIt-UDF portiert. Bemühe mal die SuFu.

    Das habe ich natürlich gemacht. Nur habe ich es nicht verstanden..

    http://www.autoitscript.com/forum/topic/42…ator-print2pdf/


    [ offen ] PDF erstellen + zusammenfügen


    Wenn du mir noch einen Besseren Tip geben kannst. Nehme ich den gerne.

    Bin was Autoit angeht nur ein Anfänger.

    Ordner Struktur hat nur den Vorteil das ich nicht an PDFCreator gebunden bin.

    Steffen

  • Habe ich heute früh getestet und es läuft es fehlt nur am Ende noch ein EndIF. Msgbox habe ich auskommentiert und das Exit entfernt.

    DANKE

    Steffen :D

    Einmal editiert, zuletzt von SCCSSF (29. Januar 2013 um 10:44)