Problem beim Download

  • Hallo,ich möchte machen dass wenn man in der einen TextBox /get eingibt und in die 2 ein Link zu einer Datei,er dann diese herunterlädt.
    Aber es klappt nicht ganz so,hier mal der Code:

    [autoit]

    Case $Button1
    If GUICtrlRead ($Input1) = "/get" Then
    InetGet($Input2, @DesktopDir)
    EndIf

    [/autoit]


    Weiss jemand was falsch ist? Bin noch Anfänger. :huh:

  • Du müsstest als Pfad in InetGet, also im 2ten Parameter, noch mehr angeben, also z.B.

    [autoit]

    @DesktopDir & "\Test.txt"

    [/autoit]

    sonst weiß der befehl ja nicht wie er es nennen soll.

  • Da kommt schon das nächste Problem!

    @DesktopDir & "\Test.txt"
    Man kann ja mehrere Dateien herunterladen,und dann darf ja nicht eine z.b. PNG Datei Text.txt heißen.
    Ich hatte es schon versucht mit der ganzen URL also so:

    [autoit]


    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & GuiCtrlRead($Input2))

    [/autoit]


    funktioniert aber auch nicht!

    2 Mal editiert, zuletzt von SlinJD (6. Mai 2011 um 14:08)

  • Die Datei liegt immer hinter dem letzten / in der URL. Das heißt, du musst

    [autoit]

    $aSplit=StringSplit ($sUrl, "/")

    [/autoit]

    machen, und da man das letzte Arrayelement braucht, muss man einfach Ubound ($aSplit) -1 nehmen als Index. Dann hast du "Bild.png" oder was auch immer raus.

  • Und wie muss ich das einbauen?
    So aufjedenfall nicht:

    [autoit]

    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & GuiCtrlRead($Input2))
    $aSplit=StringSplit ($sUrl, "/")

    [/autoit]

    :pinch: :S

  • [autoit]

    $aSplit=StringSplit ($sUrl, "/")
    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & $aSplit[Ubound ($aSplit)-1])

    [/autoit]
  • Zitat

    C:\Users\Nils\Documents\Autoit\D_Console\D-Console.au3(27,94) : ERROR: syntax error
    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & $aSplit(Ubound ($aSplit)-1) ;Dateidownload
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\Nils\Documents\Autoit\D_Console\D-Console.au3 - 1 error(s), 0 warning(s)

    [autoit]

    $aSplit=StringSplit ($sUrl, "/") ;Split
    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & $aSplit(Ubound ($aSplit)-1) ;Dateidownload

    [/autoit]

    //Edit wenn ich

    [autoit]

    $aSplit=StringSplit ($sUrl, "/") ;Split
    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & $aSplit(Ubound ($aSplit)-1)) ;Dateidownload

    [/autoit]


    mache und auf den Button klicke schließt sich das Fenster sofort. 8|

  • Du musst das Ubound -1 in [] setzen, fals du dich mit Arrays nicht auskennst schau dir mal das Tutorial von BugFix an. Nehm den Code den ich 2 Poste weiter obene gepostet hab.

  • Zitat

    $aSplit=StringSplit ($sUrl, "/") ;Split
    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & $aSplit(Ubound ($aSplit)-1) ;Dateidownload

    [autoit]

    InetGet(GUICtrlRead ($Input2), @DesktopDir & "\" & $aSplit[Ubound ($aSplit)-1]) ;Dateidownload

    [/autoit]

    $aSplit ist eine Array und wenn man auf Array Elemente zugreifen möchte muss man die eckigen Klammern benutzen.