Italian Download files

Discussion in 'Italian Forum' started by Raytracer, Apr 11, 2008.

  1. Raytracer

    Raytracer Member Licensed User

    Ho la necessità di comporre la stringa relativa ad un URL da scaricare al momento, ricavandola come somma di stringhe + 1 variabile. Mi spiego meglio:

    se scrivo queste istruzioni, il download va a buon fine:

    URL="http://www.abc.it/abc/abc=XXXXdefghil"
    DownloadFile(AppPath & "\abcd.txt")



    se invece scrivo così (in cui il valore di name è uguale a XXXX) :

    name = reg.GetValue("Software\abc\", "abcd")
    URL="http://www.abc.it/abc/abc=" & name & "defghil"
    DownloadFile(AppPath & "\abcd.txt")

    il download non va... ho anche provato a ricavare il valore da passare a URL con la funzione StrReplace, a "comporlo" precedentemente in una variabile da passare successivamente a URL, ma ogni tentativo senza esito... in cosa sbaglio?
    Grazie in anticipo a chiunque vorrà rispondermi :)
     
  2. maXim

    maXim Active Member Licensed User

    Ciao Raytracer,

    non mi pare che stai sbagliando, anche io utilizzo un metodo simile (forse uguale) e funziona tutto correttamente. All'inizio delle mie sperimentazioni mi è capitato qualcosa di vagamente simile che ho risolto "forzando" la RootKey ogni qualvolta che accedevo alle chiavi, per esempio:

    Code:
    [FONT=Courier New][SIZE=2][COLOR=#0000ff]Sub [/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2]CreateSubKey[/SIZE][/FONT]
    [SIZE=
    2][FONT=Courier New]    reg.RootKey(reg.rtCurrentUser)[/FONT][/SIZE]
    [SIZE=
    2][FONT=Courier New]    reg.CreateSubKey([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#800000]"Software"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000]"abc"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2])[/SIZE][/FONT]
    [
    FONT=Courier New][SIZE=2][COLOR=#0000ff]End Sub[/COLOR][/SIZE][/FONT]
     
    [SIZE=
    2][FONT=Courier New][COLOR=#0000ff]Sub [/COLOR][/FONT][/SIZE][FONT=Courier New][SIZE=2]SetSubKey[/SIZE][/FONT]
    [SIZE=
    2][FONT=Courier New]    reg.RootKey(reg.rtCurrentUser)[/FONT][/SIZE]
    [SIZE=
    2][FONT=Courier New]    reg.SetStringValue([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#800000]"Software\abc"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2],[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000]"abcd"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2], [/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000]"XXXX"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2])[/SIZE][/FONT]
    [
    FONT=Courier New][SIZE=2][COLOR=#0000ff]End Sub[/COLOR][/SIZE][/FONT]
     
    [SIZE=
    2][COLOR=#0000ff]Sub [/COLOR][/SIZE][SIZE=2]GetSubKey[/SIZE]
    [
    FONT=Courier New][SIZE=2][COLOR=#0000ff]    Dim[/COLOR][/SIZE][SIZE=2] xs[/SIZE][/FONT]
    [SIZE=
    2][FONT=Courier New]    reg.RootKey(reg.rtCurrentUser)[/FONT][/SIZE]
    [SIZE=
    2][FONT=Courier New]    xs = reg.GetValue([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#800000]"Software\abc"[/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2], [/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000]"abcd"[/COLOR][/SIZE][/FONT][SIZE=2])[/SIZE]
    [
    FONT=Courier New][SIZE=2][COLOR=#0000ff]    Return[/COLOR][/SIZE][SIZE=2] xs[/SIZE][/FONT]
    [
    FONT=Courier New][SIZE=2][COLOR=#0000ff]End Sub[/COLOR][/SIZE][/FONT]
    l'esempio è semplificato al massimo solo per intenderci e quindi non è da considerare (ovviamente) per un'applicazione valida.

    Se mi passi, anche privatamente, qualche informazione in più (quelle possibili) cercherò, sempre nel mio possibile, di esserti più utile.

    Saluti,

    Massimo
     
    Last edited: Apr 11, 2008
  3. Raytracer

    Raytracer Member Licensed User

    Ciao Massimo,
    come sempre grazie per la tua disponibilità e il tuo prezioso aiuto.
    Confortato da quanto mi hai confermato nel reply, ho ricontrollato il codice e ho notato una mia inesattezza relativa alla chiave di registro a cui facevo riferimento. L'unica scusa che posso avere è l'ora tarda a cui ho scritto, ma non è che regga più di tanto... :-(
     
  4. Raytracer

    Raytracer Member Licensed User

    Un altro quesito...
    Un file (dati.txt) contiene un elenco: ad ogni riga corrisponde un URL relativo ad una immagine. Ho scritto questa routine per scaricare e salvare le immagini come Foto1.jpg, Foto2.jpg, ecc:

    FileOpen (c1,"dati.txt",cRead ,, cASCII)
    URL = FileRead (c1)
    Do Until URL = EOF
    i = i + 1
    DownloadFile(AppPath & "\RSS\Notizie\Foto" & i & ".jpg")
    URL = FileRead (c1)
    Loop
    FileClose (c1)

    Sub DownloadFile (LocalFile)
    Response.New1
    Request.New1(URL)
    Request.TimeOut = 30000
    Response.Value = Request.GetResponse
    Reader.New1(Response.GetStream,true)
    FileOpen(c1,LocalFile,cRandom)
    Writer.New1(c1,false)
    count = Reader.ReadBytes(buffer(),4096)
    Do While count > 0
    Writer.WriteBytes2(buffer(),0,count)
    count = Reader.ReadBytes(buffer(),4096)
    Loop
    FileClose(c1)
    Response.Close
    End Sub

    Quando vado ad eseguirlo, mi viene segnalato un errore nella sub DownloadFile, nel punto segnato in grassetto. Potreste dirmi anche qui dov'è l'errore?
     
  5. Raytracer

    Raytracer Member Licensed User

    Ho trovato la ragione...
    Usavo lo stesso identificativo (c1) sia nella routine di apertura del file dati.txt, che nella routine di downloadfile.
    Ci sono impazzito non poco, e la ragione era sempre la stessa: la mia inesperienza... :(
    Pubblica ammenda e queste poche righe di spiegazione a beneficio di chi, come me, è all'inizio e si trova in difficoltà anche nelle cose più semplici. ;)
     
Loading...