Oppure

Loading
19/10/11 11:43
xsi
Buongiorno, ieri ero in ricerca di un modo di scaricare file tramite un applicazione che riportasse anche velocità di download, peso del file, progressbar e ulteriori informazioni. Proprio su questo forum ho trovato l'applicazione che riporto in allegato. Apro il progetto su vb 2010 e provo il download di alcuni file (di piccole dimensioni) e rilevo che funziona tutto correttamente. Successivamente ho provato con file di dimensioni maggiori (300mb) e l'applicazione termina il download a circa 20000kb riportandomi come errore sul codice la seguente stringa:

Dim percent As Short = (nRead * 100) / length


Ho poca conoscenza in vb.net e non ne vengo a capo, c'è forse qualche limite di download nel codice dell'applicazione? Vi ringrazio dell'aiuto anticipatamente e mi scuso se ho sbagliato in qualche modo a postare.
aaa
19/10/11 12:01
nessuno
Quale errore?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/10/11 12:03
xsi
Postato originariamente da xsi:

Buongiorno, ieri ero in ricerca di un modo di scaricare file tramite un applicazione che riportasse anche velocità di download, peso del file, progressbar e ulteriori informazioni. Proprio su questo forum ho trovato l'applicazione che riporto in allegato. Apro il progetto su vb 2010 e provo il download di alcuni file (di piccole dimensioni) e rilevo che funziona tutto correttamente. Successivamente ho provato con file di dimensioni maggiori (300mb) e l'applicazione termina il download a circa 20000kb riportandomi come errore sul codice la seguente stringa:

Dim percent As Short = (nRead * 100) / length


Ho poca conoscenza in vb.net e non ne vengo a capo, c'è forse qualche limite di download nel codice dell'applicazione? Vi ringrazio dell'aiuto anticipatamente e mi scuso se ho sbagliato in qualche modo a postare.

Stavo riprovando per averne la certezza ma oggi non riesco a replicarlo, se non erro ieri usciva scritto che era impossibile dividere per zero, purtroppo non posso essere più preciso perchè attualmente si stoppa solo il download :(

EDIT: ecco l'errore
Ultima modifica effettuata da xsi 19/10/11 12:08
aaa
19/10/11 12:07
nessuno
Se l'errore è quello vuol dire che la variabile

length

per qualche motivo, vale zero, e questo ovviamente non è possibile.

Devi controllare che il valore di length sia diverso da zero prima di far continuare il download. Modifica il sorgente introducendo questo controllo.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/10/11 12:09
xsi
Ho riportato sopra l'errore preciso.
aaa
19/10/11 12:26
nessuno
Quando il programma è in quella riga, controlla il valore delle variabili ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
19/10/11 12:38
xsi
Postato originariamente da nessuno:

Quando il programma è in quella riga, controlla il valore delle variabili ...

Grazie dell'aiuto.

Rileggendo il codice la variabile lenght dovrebbe riportare il peso del file, quello che non capisco è il motivo per cui varia durante il download.

Forse il modo migliore è ripartire da 0 creando una cosa simile così mi rendo conto realmente come funziona...

aaa
19/10/11 12:50
nessuno
Scusa, ma non hai detto quanto valgono le variabili come ti avevo consigliato di fare ...

Non penso che le variabili cambino valore durante l'esecuzione, probabilmente quella length vale zero sin dall'inizio e dovresti capire il perché ... ovvero dovresti effettuare un controllo subito dopo

Dim length As Long = theResponse.ContentLength 'Size of the response (in bytes)

e informare l'utente che il server non ha restituito la lunghezza del file.
Ultima modifica effettuata da nessuno 19/10/11 12:52
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.