Autore Topic: wget e progress bar  (Letto 6921 volte)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: wget e progress bar
« Risposta #30 il: 11 Febbraio 2010, 22:23:02 »
non ci siamo ancora :
Codice: [Seleziona]
sergio@pc-sergio:~$ wget http://ftp://ftp.finanze.it/pub/docfa4/docfa4-1.zip
--2010-02-11 22:22:18--  http://ftp//ftp.finanze.it/pub/docfa4/docfa4-1.zip
Risoluzione di ftp... fallito: Nome o servizio sconosciuto.
wget: impossibile risolvere l'indirizzo dell'host "ftp"
sergio@pc-sergio:~$

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #31 il: 11 Febbraio 2010, 22:28:46 »
non ci siamo ancora :
Codice: [Seleziona]
sergio@pc-sergio:~$ wget [b]http://ftp://[/b]ftp.finanze.it/pub/docfa4/docfa4-1.zip
--2010-02-11 22:22:18--  http://ftp//ftp.finanze.it/pub/docfa4/docfa4-1.zip
Risoluzione di ftp... fallito: Nome o servizio sconosciuto.
wget: impossibile risolvere l'indirizzo dell'host "ftp"
sergio@pc-sergio:~$

è qui http://ftp://ftp.finanze.it/pub/docfa4/docfa4-1.zip

quello corretto è solo ftp://ftp.finanze.it/pub/docfa4/docfa4-1.zip senza l'http.. che purtroppo l'editor del forum mette in automatico
eheh :D

grazie mille cmq per la grande mano che mi stai dando

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: wget e progress bar
« Risposta #32 il: 11 Febbraio 2010, 22:35:37 »
ok così funge perfettamente  8)
Codice: [Seleziona]
' Gambas class file
PRIVATE hProcess AS Process

PUBLIC SUB Form_Open()

DIM controllo AS Variant



  

SHELL "ping -c 4 www.google.it" TO controllo


    IF Len(controllo) = 0 THEN
        Message.Error("Non è presente la connessione", "exit")
        'installdocfa.Close()
    END IF
    


    IF NOT Exist(user.home &/ "Docfa") THEN
        MKDIR (user.home &/ "Docfa")
    END IF

END



PUBLIC SUB Button1_Click()


DIM comando AS String


      

SHELL "rm -fr docfa4-1.zip index.html" WAIT
SHELL "wget ftp://ftp.finanze.it/pub/docfa4/" WAIT

SHELL "echo $(cat index.html | grep docfa4-1.zip | cut -d'(' -f2 | cut -d' ' -f1)" WAIT
SHELL "rm -fr index.html" WAIT



comando = "wget ftp://ftp.finanze.it/pub/docfa4/docfa4-1.zip"
'comando = "wget http://www.finanze.it/pub/Docfa4/docfa4-1.zip"
hProcess = SHELL comando FOR READ AS "hProcess"
WAIT 5
timer1.start

END





PUBLIC SUB Timer1_Timer()



DIM Valore AS Float


DIM i AS Integer

 
      i = hProcess.State
  
  IF i = 0 THEN
    Timer1.Stop
    
    ProgressBar1.Value = 1
  
  ELSE
Valore = Stat(user.Home & "/docfa4-1.zip").Size / 13500000
        ProgressBar1.value = Valore

  ENDIF
END

« Ultima modifica: 11 Febbraio 2010, 22:39:08 da fsurfing »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: wget e progress bar
« Risposta #33 il: 11 Febbraio 2010, 22:37:20 »
devi solamente sostituire a 13500000 il valore letto tramite il primo wget (ricordati che sono byte)



Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: wget e progress bar
« Risposta #34 il: 11 Febbraio 2010, 22:44:04 »
per impostare automaticamente il valore dela dimensione del file fai così:

Codice: [Seleziona]
' Gambas class file
PRIVATE hProcess AS Process
PRIVATE peso AS Integer

PUBLIC SUB Form_Open()

DIM controllo AS Variant



 

SHELL "ping -c 4 www.google.it" TO controllo


    IF Len(controllo) = 0 THEN
        Message.Error("Non è presente la connessione", "exit")
        'installdocfa.Close()
    END IF
   


    IF NOT Exist(user.home &/ "Docfa") THEN
        MKDIR (user.home &/ "Docfa")
    END IF

END



PUBLIC SUB Button1_Click()


DIM comando AS String
DIM stringa AS String

     

SHELL "rm -fr docfa4-1.zip index.html" WAIT
SHELL "wget ftp://ftp.finanze.it/pub/docfa4/" WAIT

SHELL "echo $(cat index.html | grep docfa4-1.zip | cut -d'(' -f2 | cut -d' ' -f1)" WAIT TO stringa

TRY peso = Val(stringa)
SHELL "rm -fr index.html" WAIT



comando = "wget ftp://ftp.finanze.it/pub/docfa4/docfa4-1.zip"
'comando = "wget http://www.finanze.it/pub/Docfa4/docfa4-1.zip"
hProcess = SHELL comando FOR READ AS "hProcess"
'WAIT 5
timer1.start

END





PUBLIC SUB Timer1_Timer()



DIM Valore AS Float


DIM i AS Integer

 
      i = hProcess.State
 
  IF i = 0 THEN
    Timer1.Stop
   
    ProgressBar1.Value = 1
 
  ELSE
TRY Valore = Stat(user.Home & "/docfa4-1.zip").Size / peso
        ProgressBar1.value = Valore

  ENDIF
END



Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #35 il: 11 Febbraio 2010, 22:47:41 »
Innanzi tutto un GRAZIE MILLE di dimensioni bibbliche...

ho messo 14147827 (che la dimensione esatta) ma si inceppa al 4 %... ora ci provo un po e vedo di risolvere..

grazie mille ancora sono debitore...

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: wget e progress bar
« Risposta #36 il: 11 Febbraio 2010, 22:51:35 »
quarda il post sotto ti ho scritto il codice che mette il valore estratto dal CAT, a me funziona perfettamente senza errori fino a scaricamento completato.
Citazione
grazie mille ancora sono debitore...
per quello basta un bonifico  :)

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #37 il: 11 Febbraio 2010, 23:28:49 »
Funziona alla stra grande!!!!!!!!!!!! grazie mille!!!!

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #38 il: 27 Settembre 2010, 13:53:17 »
ciao a tutti... ora che ho ripristinato una postazione linux (con opensuse) ho ripreso a giocherellare con gambas...

solo che ora non riesco piu a far andare la progressbar... per assurdo non mi va nemmeno il codice sopra postato, che poco tempo fa invece andava a dovere...

sapete darmi qualche dritta? devo attivare qualcosa?

sono su gambas 2.21 su un pc x86_64....

ringrazio in anticipo

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: wget e progress bar
« Risposta #39 il: 27 Settembre 2010, 15:18:57 »
ciao a tutti... ora che ho ripristinato una postazione linux (con opensuse) ho ripreso a giocherellare con gambas...

solo che ora non riesco piu a far andare la progressbar... per assurdo non mi va nemmeno il codice sopra postato, che poco tempo fa invece andava a dovere...

sapete darmi qualche dritta? devo attivare qualcosa?

sono su gambas 2.21 su un pc x86_64....

ringrazio in anticipo


Ma la progressbar è diversa o è la stessa di cui parli sopra?

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #40 il: 27 Settembre 2010, 17:08:10 »
ciao!

diversa.... ho copiato il codice, e a ogni elemento ho messo ovviamente il nome corrispondente....


Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #41 il: 29 Settembre 2010, 11:53:35 »
Allora, ho provato a ignorare la cosa, e a riscrivere un pezzo di programma con appunto una funzione che mi serve: il download da kernel.org dei vari kernel (con relativa progress bar)

il mio codice è:
Codice: [Seleziona]
'download
PUBLIC SUB Button4_Click()
DIM comando AS String
DIM stringa AS String
IF ListBox1.Text = "" THEN
Message.Error("Nessun kernel selezionato")
ELSE
SHELL "rm -fr $HOME/lmx/kernel/*.html" WAIT
SHELL "cd $HOME/lmx/kernel/; wget http://kernel.org" WAIT
SHELL "echo $(cat $HOME/lmx/kernel/index.html.dimensioni | grep " & ListBox1.Text & ".tar.bz2 | cut -d'(' -f2 | cut -d' ' -f1)" WAIT TO stringa
TRY peso = Val(stringa)
comando = "cd $HOME/lmx/kernel/; wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-" & ListBox1.Text & ".tar.bz2"
hProcess = SHELL comando FOR READ AS "hProcess"
WAIT 5
timer1.start
ENDIF
END
'
'
'timer downlaod
PUBLIC SUB Timer1_Timer()
DIM Valore AS Float
DIM i AS Integer
i = hProcess.State
IF i = 0 THEN
Timer1.Stop
ProgressBar1.Value = 1
ELSE
TRY Valore = Stat(user.Home & "/lmx/kernel/linux-" & ListBox1.Text & ".tar.bz2 ").Size / peso
ProgressBar1.value = Valore
ENDIF
END

uno screenshot è:


premessa: ho scritto uno script che scarica l'elenco dei kernel e le relative dimensioni (appurato ce funziona in modo corretto)

1- se non vengono selezionati da un errore
2- se è selezionato ricava dimensioni/nome
3- le dimensioni (in byte) finiscono in Peso
4- viene assegnato a comando la funzione shell da eseguire
5- parte lo start per il timer 1


ma purtroppo non funge, o meglio, se premo download lo scarica e mi resta 0% fino a che non lo conclude e allora passa a 100%...

come posso risolvere?
ringrazio per eventuali risposte

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: wget e progress bar
« Risposta #42 il: 29 Settembre 2010, 14:54:24 »
C'è un WAIT 5 che attende 5 secondi...perchè lo hai inserito?

Offline ira83

  • Gambero
  • **
  • Post: 85
    • Mostra profilo
Re: wget e progress bar
« Risposta #43 il: 29 Settembre 2010, 17:04:17 »
ciao...
mi era stato consigliato su questo forum in un'altro progetto... ad ogni modo anche commentandolo non funziona mica..

avete consigli su come poter risolvere?

postedit:

penso che l'errore sia nella riga

TRY Valore = Stat("$HOME/lmx/kernel/linux-" & ListBox1.Text & ".tar.bz2").Size / peso

in quanto se faccio un message.info(stat................) mi dice che il file non esiste... invece lo sta scaricando senza problemi...
« Ultima modifica: 29 Settembre 2010, 17:24:02 da ira83 »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: wget e progress bar
« Risposta #44 il: 29 Settembre 2010, 17:54:47 »
WGet si comporta in modo diverso da quanto si possa immaginare.

A volte, controllando con un terminale, il file viene creato all'avvio dello scaricamento, ma le dimensioni restano sempre a zero, fino a quando lo scarico non è stato completato.
Altre volte, invece, vengono riportate le dimensioni finali, anche se il file è ancora sotto scarico.
Altre volte ancora il file non esiste nemmeno, perchè viene creato a mò di pipe sulla temp, e lo vedi solo quando terminato.

Da quanto notato, i comportamenti sono diversi, a seconda della versione, della distribuzione Linux, e via dicendo...