Denkfejler ?

  • Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.2.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <GUIConstants.au3>
    #include <IE.au3>
    #include <ftp.au3>

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

    AutoItSetOption("WinTitleMatchMode", 2)

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Administrator\Desktop\BackUpTool.kxf
    $BackUpTool = GUICreate("Back Up Tool", 481, 178, 374, 253)
    GUISetBkColor(0xFFFFFF)
    $l1 = GUICtrlCreateLabel("Benutzername :", 0, 80, 78, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $l2 = GUICtrlCreateLabel("Passwort :", 0, 48, 53, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $l3 = GUICtrlCreateLabel("Link :", 0, 16, 30, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $i1 = GUICtrlCreateInput("", 32, 8, 289, 21)
    $i2 = GUICtrlCreateInput("", 56, 40, 265, 21,$ES_PASSWORD)
    $i3 = GUICtrlCreateInput("", 80, 72, 241, 21)
    $l4 = GUICtrlCreateLabel("Back Up Download Pfad :", 0, 160, 128, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $i4 = GUICtrlCreateInput("", 136, 152, 185, 21)
    $but_pfad = GuiCtrlCreateButton("...",325,152,25,17)
    $b1 = GUICtrlCreateButton("Start Back Up Tool", 344, 16, 115, 97, 0)
    $l5 = GUICtrlCreateLabel("Backup Pflichtige Datei :", 0, 112, 121, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $i5 = GUICtrlCreateInput("", 128, 104, 193, 21)
    $c1 = GUICtrlCreateLabel("copyrighted by WoW-Unit", 352, 160, 126, 17)
    GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $b1
    _blubb()
    EndSwitch
    WEnd

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

    func _blubb()
    $server = GUICtrlRead($i3) ;oder IP 151.189.20.30
    $username = GUICtrlRead($i2) ;hab ich
    $pass = GUICtrlRead($i1) ;hab ich auch ;)

    $loginname = 'WoW-Unit'

    $Open = _FTPOpen("MyFTP Control")
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    $ftp = _FTPGet(
    $Ftpc = _FTPClose($Open)
    EndFunc

    [/autoit]

    Hallo Leute Sorry das ich euch stören muss...
    aber wo ist der denkfehler hier entweder es gibt ne fehlermeldung oder mein rechner reagiert nit mehr...

    soll ein ftp download script werden...
    ich weis nur nicht wies weitergeht

    ich habe alle 93 seiten durchforstet nach ftp.au3 anleitungen bin einfach zu blind oder zu blöd um was zu finden ich hoffe ihr wollt und könnt mir aushelfen...
    wär echt nice

    edit: P.S. werde bis morgen früh nicht antworten können da ich schlafe wie ein stein^^

  • [autoit]


    $server = GUICtrlRead($i3) ;oder IP 151.189.20.30
    $username = GUICtrlRead($i2) ;hab ich
    $pass = GUICtrlRead($i1) ;hab ich auch ;)

    $loginname = 'WoW-Unit' ; für ist das hier wenn es nicht weiter verwendet wird?

    $Open = _FTPOpen("MyFTP Control")
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    If @Error MsgBox(0,"", $Conn)
    $ftp = _FTPGet( ; <- so wird das nicht funktionieren
    $Ftpc = _FTPClose($Open)

    [/autoit]
  • Spoiler anzeigen
    [autoit]


    ;===============================================================================
    ;
    ; Function Name: _FTPGetFile() - db Test
    ; Description: Gets an file from an FTP server.
    ; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
    ; $s_RemoteFile - The remote Location for the file.
    ; $s_LocalFile - The local file.
    ; $l_Flags - use the dwFlags parameter to specify
    ; - 1 for transferring the file in ASCII (Type A transfer method) or
    ; - 2 for transferring the file in Binary (Type I transfer method).
    ; $l_Fail - Allow local file to be overwritten if it exists
    ; - -1 Don't allow overwrite (default)
    ; - 0 Allow overwrite
    ; $l_Attributes - Attributes for local file
    ; $l_Context - lContext is used to identify the application context when using callbacks. Since we’re not using callbacks we’ll pass 0.
    ; Requirement(s): DllCall, wininet.dll
    ; Return Value(s): On Success - 1
    ; On Failure - 0
    ; Author(s): Dick Bronsdijk
    ;
    ;===============================================================================

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

    Func _FTPGetFile($l_FTPSession, $s_RemoteFile, $s_LocalFile, $l_Flags = 2, $l_Fail = -1, $l_Attributes = 0, $l_Context = 0)

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

    Local $ai_FTPGetFile = DllCall('wininet.dll', 'int', 'FtpGetFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'str', $s_LocalFile, 'long', $l_Fail, 'long', $l_Attributes, 'long', $l_Flags, 'long', $l_Context)
    If @error OR $ai_FTPGetFile[0] = 0 Then
    SetError(-1)
    Return 0
    EndIf

    Return $ai_FTPGetFile[0]

    EndFunc;==> _FTPGetFile()

    [/autoit]

    das ist die Funktion aus der ftp.au3

    [autoit]


    _FTPGetFile($Conn, "Dateifpad auf dem Server", "Dateipfad zum speichern lokal", 2, 0, 0, 0) ; die erste Null steht für Lokale Datein werden überschrieben, bzw steht alles in der Funktionssammlung oben drinne XD

    [/autoit]
  • ftp.au3 anschauen;

    Spoiler anzeigen
    [autoit]


    ;===============================================================================
    ;
    ; Function Name: _FtpFilesListToArray()
    ; Description: Get Filenames, Directorys, or Both of a Directory.
    ; Parameter(s): $l_FTPSession - Long From _FileConnect
    ; $Return_type - 0 = Both Files and Directorys, 1 = Directorys, 2 = Files
    ; Requirement(s): DllCall, wininet.dll
    ; Return Value(s): On Success - 1
    ; On Failure - 0
    ; Author(s): Me
    ;
    ;===============================================================================

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

    Func _FTPFilesListToArray($l_FTPSession, $Return_Type = 0, $l_Flags = 0, $l_Context = 0)
    Dim $array, $array2d
    $array = _ArrayCreate($array)
    $array2d = _ArrayCreate($array2d)
    $str = "dword;int64;int64;int64;dword;dword;dword;dword;char[256];char[14]"
    $WIN32_FIND_DATA = DllStructCreate($str)
    Local $callFindFirst = DllCall('wininet.dll', 'int', 'FtpFindFirstFile', 'long', $l_FTPSession, 'str', "", 'ptr', DllStructGetPtr($WIN32_FIND_DATA), 'long', $l_Flags, 'long', $l_Context)
    If Not $callFindFirst[0] Then
    MsgBox(0, "Folder Empty", "No Files Found ")
    SetError(-1)
    Return 0
    EndIf
    $ret = ""
    While 1
    Select
    Case $Return_Type = 0 ; Folders and files
    If DllStructGetData($WIN32_FIND_DATA, 1) = 16 Then
    _ArrayInsert($array, 1, DllStructGetData($WIN32_FIND_DATA, 9)) ; Add Folder to top of array
    Else
    _ArrayAdd($array, DllStructGetData($WIN32_FIND_DATA, 9)) ; Add folder to array
    EndIf
    Case $Return_Type = 1 ; Folders only
    If DllStructGetData($WIN32_FIND_DATA, 1) = 16 Then _ArrayAdd($array, DllStructGetData($WIN32_FIND_DATA, 9))
    Case $Return_Type = 2 ; Files only
    If DllStructGetData($WIN32_FIND_DATA, 1) <> 16 Then _ArrayAdd($array, DllStructGetData($WIN32_FIND_DATA, 9))
    EndSelect
    Local $callFindNext = DllCall('wininet.dll', 'int', 'InternetFindNextFile', 'long', $callFindFirst[0], 'ptr', DllStructGetPtr($WIN32_FIND_DATA))
    If Not $callFindNext[0] Then
    ExitLoop
    EndIf
    WEnd
    $WIN32_FIND_DATA = 0
    $array[0] = UBound($array) - 1
    Return $array
    EndFunc ;==>_FTPFilesListToArray

    [/autoit]

    und dann in einer Schleife alles herunterladen

    2 Mal editiert, zuletzt von leviathan (17. Juni 2007 um 14:32)

  • ok danke für deine mühe aber ehrlich gesagt ich wies weder was ne schleife beim proggeb ist noch weis ich wie ich so etwas erzeuge und dein code is mia au zu hoch trotzdem danke ich versuchs einfach weiter vielleicht schaff ich es ja irgendwann so in 3-4 jahren...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <IE.au3>
    #include <ftp.au3>

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

    AutoItSetOption("WinTitleMatchMode", 2)

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

    #Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\administrator\desktop\backuptool.kxf
    $BackUpTool = GUICreate("Back Up Tool", 481, 178, 253, 123)
    GUISetBkColor(0xFFFFFF)
    $l3 = GUICtrlCreateLabel("Benutzername :", 0, 80, 78, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $l2 = GUICtrlCreateLabel("Passwort :", 0, 48, 53, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $l1 = GUICtrlCreateLabel("Link :", 0, 16, 30, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $i1 = GUICtrlCreateInput("", 32, 8, 289, 21)
    $i2 = GUICtrlCreateInput("", 56, 40, 265, 21)
    $i3 = GUICtrlCreateInput("", 80, 72, 241, 21)
    $l5 = GUICtrlCreateLabel("Back Up Download Pfad :", 0, 160, 128, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $i5 = GUICtrlCreateInput("", 136, 152, 185, 21)
    $b1 = GUICtrlCreateButton("Start Back Up Tool", 344, 16, 115, 97, 0)
    $l4 = GUICtrlCreateLabel("Backup Pflichtige Datei :", 0, 112, 121, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $i4 = GUICtrlCreateInput("", 128, 104, 193, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $b1
    _blubb()
    EndSwitch
    WEnd

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

    Func _blubb()
    $server = GUICtrlRead($i3)
    $username = GUICtrlRead($i2)
    $pass = GUICtrlRead($i1)

    $Open = _FTPOpen("MyFTP Control")
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    $ftp = _FTPGetFolder($Conn, "Downloads" , "C:\Dokumente und Einstellungen\Administrator\Desktop\KalOnlineEng", 2, 0, 0, 0)
    $Ftpc = _FTPClose($Open)
    EndFunc

    [/autoit]


    naja so siehts bisher aus aber es spuckt nur nen fehler aus naj wie schon gesagt irgendwann^^

  • liegt vielleicht daran, dass es den Befehl FTPGetFolder nicht gibt bzw bei inna FTP.au3 ist er nicht

    Schleife wäre so:
    - du brauchst ein Array (Tabelle) mit allen Datein; befehl ist oben -> ich nenne es mal $files
    - dann

    [autoit]


    For $i = 1 To $files[0] ;$files[0] ist die Anzahl der Datein
    _FTPGetFile($Conn,"Pfad"&$files[$i], "Pfadlokal"&$files[$i])
    Next

    [/autoit]


    so macht er das für alle Datein durch

    Aber wenn im Ordner noch Unterordner sind musst du mehrere Durchläufe machen siehe oben: $Return_type - 0 = Both Files and Directorys, 1 = Directorys, 2 = Files

    also erst alle Datein im ersten Ordner dann Ordner suchen lassen, und die Ordner wieder in so einer schleife wie oben runterladen lassen nur mit DirCreate davor und halt da rein

    Einmal editiert, zuletzt von leviathan (17. Juni 2007 um 15:04)

  • Also ich meinte das jetzt ernst. Ich glaube nämlich nicht, dass du weißt wie es mit Arrays läuft und dann noch zusätzlich For-Next-Schleife ohne ausführliche Erklärung.

    ..:: EDIT ::..
    Deswegen solltest du mal das Tutorial/Wiki von huggy bezüglich Array anschauen. Ist sehr hilfreich, habe ich gehört!!

    Einmal editiert, zuletzt von Zen (17. Juni 2007 um 15:56)

  • @Zen jo da demkste richtig weil ich will es ja lernen aber ich kan nicht mehr machen als mir alle 93 seiten dieses forums zu durchsuchen und um hilfe bitten oder die hilfe dateien lesen aber man bekommt keine gute antwort...
    klar ich muss sagen das hier ist das schnellste und freundlichste forum das ich kennne aber lieber warte ich ne stunde maehr und verstehe dann wenigstens was in der antwor steht
    aber naja is warscheinlich nur meine meinung...

    EDIT : habe ich schon gelesen nur nicht verstanden ...

  • dann nochmal lesen und oben ist das For Next to erklärt o.O? einfach mal ausprobieren mit einem Ordner ohne Unterordner und sich weiterarbeiten
    und net sofort *wegrennen*

    • Offizieller Beitrag

    @WoW-Unit

    Also so wie ich das bis jetzt mitbekommen habe, hast du kaum Programmierkenntnisse.
    Daher meine Frage: Warum willst du ein FTP-Upload Programm erstellen, wenn du schon nach wenigen Schritten bemerkst, dass dir dafür z.Zt. noch die Voraussetzungen fehlen?

    Ich kann durchaus die Forenmitglieder verstehen, die dann leicht gereizt reagieren.

    Stelle die Bsp. aus der Hilfe nach, erweitere diese. Kombiniere mit anderen Funktionen. Dabei lernst du die Basics.

    Abfragen, Schleifen - bevor du das einsetzt und dann an der Umsetzung scheiterst, sollte dir klar sein, wie es funktioniert.

    Ich wollte dich hiermit nicht entmutigen, aber dir sollte klar sein, dass die Grundlagen der Programmierung nicht in ein paar Tagen zu erlernen sind.
    Bleib dran und gib nicht auf, versuche zuerst immer selbst einen Ansatz zu finden. Kommst du dann nicht mehr weiter, helfen wir gern.

  • danke bugfix aber wenn du an den thread homepage backup denkst..
    wird dir sicher auffallen das dieser schon ca. 1 woche alt ist und seit diesem thread versuche ich es fast tag und nacht also kann ich mir nicht vorwwerfen lassen ich würde autoit in erin paar std´s lernen wollen...
    nochdazu habe ich alle seiten die ich fand welche mit ftp zu tun haben durchgelesen...
    und nix gefunden also i9ch selber weise alle schuld bzw. faulheit von mir...

    • Offizieller Beitrag

    Sag mal, liegt das am Wetter?
    Ist mir auch in einigen anderen Threads aufgefallen, dass die Emotionen ziemlich schnell hochkochen. :D

    Es geht doch überhaupt nicht um Schuldzuweisungen.
    Du hast alles zu FTP durchgelesen, und die in den Bsp. verwendeten Funktionen sind dir rückhaltlos klar? :rolleyes:

  • hast du dir da auch die ftp.au3 angeschaut, bzw weist du überhaupt was da drinne ist und warum man das #include <ftp.au3> macht?