Kopiertool

  • Die Daten sollen auf jeden Fall überschrieben werden.

    Die Verzeichnisse auf dem Server sind nicht diesselben.

    So haben wir einen "Puffer" damit wir mit Aussendienst Daten nicht im Innendienst bearbeitete Daten überschreiben.

    Das ist vernünftig !

    Dir liegt natürlich der DirCopy Bereich am Herzen, weil damit das Programm endlich mal etwas sichtbares produziert ;).

    Vorher müssen aber die Syntaxfehler/Lücken in der Variablenbesetzung beseitigt werden.

    (DirCopy also bitte weiterhin auskommentieren)

    Ich denke, wir werden später eh nicht mit DirCopy arbeiten, da :

    Merkwürdiges Verhalten auch bei DirCopy ?

    Es gibt bessere Möglichkeiten des Kopierens.

    Hast Du die von mir in Beitrag #38 Punkt 4. beschriebenen Sachen mal ausprobiert ?

    - ConsoleWrite Befehle einbauen - Schauen was die Konsolenausgabe macht (d.h. das Skript mit F5 im Editor starten.

    - danach die GUI-Loop umstellen.

    Gruß Musashi

  • Sorry. Warum nochmal. Bitte kurz erklären, statt einen Link auf einen anderen Thread.

    Ja, das alles ist mit Worten nicht ganz leicht zu beschreiben - Sorry :P

    In der Zeit hätte man das Tool sicher 3x schreiben können, allerdings ohne Lerneffekt für kayes .

    Die Generierung des Pfades ist noch instabil, siehe :

    Du besetzt zwar $jjjj , aber nicht $Projektdown , obwohl Du $Projektdown bei der Pfadangabe verwendest.

    ==> Folge : $Projektdown ist leer, und im Pfad steht ...\\,,,

    Mir geht es also erst mal darum, dass in der Konsole ein zuverlässiges Ergebnis angezeigt wird.

    Anschließend kommt das Kopieren, ob mit DirCopy oder einer anderen Variante (daher der Link) kann anschließend entschieden werden.

    autoiter : Hast Du die ConsoleWrites mal eingebaut und Dir die Ausgabe angesehen ?

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (20. Dezember 2018 um 22:51)

  • kayes !

    Mal eine generelle Frage :

    Möchtest Du Dich überhaupt soweit in die Materie einarbeiten, dass Du am Ende Dein Skript zu 100% verstehst, oder wird Dir die Sache zu aufwendig ?

    Falls Du einfach nur ein fertiges Skript haben willst, könnte ich das verstehen ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ich möchte es schon zu 100% verstehen.

    Für nur ein fertiges Skript sind wir schon zu weit :theke:

    Gut, das ist doch eine klare Aussage:thumbup:.

    Ein Mantra des Forums lautet übrigens : Hilfe zur Selbsthilfe

    (ein Profi könnte das Tool sicher in einer Stunde fertigmachen, mit Progressbar und allem ;))

    Zurück zum Thema :

    Du hast anhand der Konsolenausgabe ja gesehen, das Deine aktuelle GUI-Loop permanent die Funktionen copyup und copydown triggert (auslöst) ohne das Du einen der Buttons klickst.

    Daher werden die Pfade erzeugt und DirCopy aufgerufen BEVOR der User überhaupt etwas in die Editfelder eintragen kann. Folge : Die Pfadangaben sind fehlerhaft.

    (es gibt verschiedene GUI-Modi - Stichwort OnEvent - aber das lassen wir mal weg)

    Daher würde ich erst mal empfehlen, meine GUI-Loop aus Beitrag #38 zu verwenden und Dein aktualisiertes Skript zu posten.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ich habe es eben mal gestartet. Es ist witzig. Das Problem entsteht, weil bei der es sich bei $down1oad bei der Deklaration und $download in der Auswertung, um verschiedene Variablen handelt. Einmal ist es eine EINS einmal der Buschstabe L (klein geschrieben).

    Grüße autoiter

  • Einmal ist es eine EINS einmal der Buschstabe L (klein geschrieben).

    Stimmt !

    Das ist ein Tippfehler in meinem GUI-Loop Vorschlag, d.h. korrekt wäre :

    In kayes GUI-Loop ist der Tippfehler zwar nicht drin, hier gibt es aber nach wie vor das Problem, dass permanent die Funktionen copyup und copydown getriggert werden, ohne das man einen der Buttons klickt.

    Nachtrag : Doch, auch kayes hat diesen Fehler, nur an einer anderen Stelle :

    ; Downloadbutton wird gesetzt

    $down1oad = GUICtrlCreateButton("<=", 256, 96, 28, 28)

    Von da habe ich ihn wahrscheinlich kopiert, trotzdem ein Lapsus :whistling:.

    kayes :

    Es würde Sinn machen, Opt('MustDeclareVars', 1) an den Anfang des Skriptes zu setzen, dazu müssten aber einige Variablen vorab deklariert werden.

    Poste Du erst mal dein aktuelles Skript.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hi kayes !

    Nachtrag :

    Dank des Tipps von autoiter (Tippfehler EINS statt kleinem L ) habe ich den Grund für das Dauerfeuer der Funktionen copyup und copydown gefunden.

    Schreibt man statt :
    $down1oad = GUICtrlCreateButton("<=", 256, 96, 28, 28)

    $download = GUICtrlCreateButton("<=", 256, 96, 28, 28)

    dann läuft es auch mit deiner GUI-Loop. Zumindest eine Baustelle weniger 8o.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Moin!

    So, nach der gestrigen Weihnachtsfeier ist mal wieder etwas Hirnschmalz gefragt.

    Hier das aktuelle Skript:

    Es schaut gut aus. Bei der Eingabe eines Projektes erscheint unten folgendes:

    < $Projektdown =

    F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\2018d001

    18\\Berechnungen

    F:\TESTUMGEBUNG\RECHNER2\Daten\2018d001

    18\\

    Ich muss also noch an der Pfadzusammensetzung feilen....

  • Du solltest deine Pfade standardmäßig nicht mit einem Backslash enden lassen, die Pfade von den Makros haben auch keine Trailing-Backslashes.

    Wenn du das ganze einheitlich hältst kannst du bei der Konkatenierung mit neuen Pfaden immer eins dranhängen statt erstmal zu gucken ob da eins dran ist oder nicht.

    Ok

    Das ist ne Nummer zu groß gerade....

    Ich habe gerade herumexperimentiert und habe jetzt ein Ergebnis mit den richtigen Pfaden:

  • Trailing-Backslash bedeutet, nachlaufende / hintere Backslashes. Also C:\Blabla\Ordner1\" dieser Pfad hat einen Trailing-Backslash. C:\Blabla\Ordner1 dieser nicht.

    Konkatenierung bedeutet einfach nur Verkettung.

    Code
    Local $sPath = "C:\blabla\Ordner1"
    
    MsgBox(64, "", $sPath & "\datei1.exe")

    Wenn du immer die Trailing-Backslashes weglässt kannst du beim zusammenfügen einfach selber eins dran machen.

    Oder du machst immer eins dran und fügst selber keins dran (ist eher inkonsistent mit den Sachen aus AutoIt, aber dennoch machbar).

  • Wenn ich den Backslash weg lasse, muss ich ihn aber immer mit "\" einfügen,

    Schreibe Dir einfach eine kleine Hilfsfunktion - das wäre zudem eine gute Übung für die Arbeit mit den String-Befehlen (RegEx geht auch, ist hier aber nicht zwingend erforderlich und noch zu heftig).

    In der Funktion könnte man dann auch Fälle wie \\ abprüfen. Ansonsten gibt es dazu sicher bereits fertige Lösungen ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Wenn ich den Backslash weg lasse, muss ich ihn aber immer mit "\" einfügen,

    bei mir folgt ja Variable auf Variable...

    < $Projektdown =

    F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\2018d001

    18\\Berechnungen

    F:\TESTUMGEBUNG\RECHNER2\Daten\2018d001

    18\\

    Dann darfst du da keine Extra-Backslashes einfügen, entweder du packst sie immer schon vorher ran und verkettest ohne Extra-\ oder du lässt sie weg und hängst sie immer selber dran (ist mMn. empfehlenswerter).

    Dann hast du auch keine doppelten Backslashes.