Ciao giulio, ho provato il tuo codice per adattarlo al progetto su cui sto lavorando.
Preso singolarmente il download viene eseguito e la progress bar avanza correttamente, mentre quando adatto il codice a quello già presente non funziona (ho segnalo il codice che attualmente ho nella mia form).
PRIVATE $sAllWgetOutput AS String
PUBLIC SUB Form_Open()
ME.Center 'già presente
ME.Caption = ("Get Ubuntu") 'già presente
Dialog.Path = User.Home 'già presente
ProgressBar1.Value = 0
END
PUBLIC SUB Download_Click()
DIM HTTP, FileName AS String 'già presente
DIM procWget AS Process
$sAllWgetOutput = ""
ProgressBar1.Value = 0
WAIT
SELECT CASE Release.Text 'tutto il SELECT CASE è già presente
CASE "11.10 Oneiric Mini Remix (i386)"
HTTP = "http://www.ubuntu-mini-remix.org/download/11.10/ubuntu-mini-remix-11.10-i386.iso"
FileName = "ubuntu-mini-remix-11.10-i386.iso"
CASE "11.10 Oneiric Mini Remix (amd64)"
HTTP = "http://www.ubuntu-mini-remix.org/download/11.10/ubuntu-mini-remix-11.10-amd64.iso"
FileName = "ubuntu-mini-remix-11.10-amd64.iso"
CASE "11.04 Natty Mini Remix (i386)"
HTTP = "http://www.ubuntu-mini-remix.org/download/11.04/ubuntu-mini-remix-11.04-i386.iso"
FileName = "ubuntu-mini-remix-11.04-i386.iso"
CASE "11.04 Natty Mini Remix (amd64)"
HTTP = "http://www.ubuntu-mini-remix.org/download/11.04/ubuntu-mini-remix-11.04-amd64.iso"
FileName = "ubuntu-mini-remix-11.04-amd64.iso"
CASE "10.10 Maverick Mini Remix (i386)"
HTTP = "http://www.ubuntu-mini-remix.org/download/10.10/ubuntu-mini-remix-10.10-i386.iso"
FileName = "ubuntu-mini-remix-10.10-i386.iso"
CASE "10.10 Maverick Mini Remix (amd64)"
HTTP = "http://www.ubuntu-mini-remix.org/download/10.10/ubuntu-mini-remix-10.10-amd64.iso"
FileName = "ubuntu-mini-remix-10.10-amd64.iso"
CASE "10.04.1 Lucid Mini Remix (i386)"
HTTP = "http://www.ubuntu-mini-remix.org/download/10.04.1/ubuntu-mini-remix-10.04.1-i386.iso"
FileName = "ubuntu-mini-remix-10.04.1-i386.iso"
CASE "10.04.1 Lucid Mini Remix (amd64)"
HTTP = "http://www.ubuntu-mini-remix.org/download/10.04.1/ubuntu-mini-remix-10.04.1-amd64.iso"
FileName = "ubuntu-mini-remix-10.04.1-amd64.iso"
CASE "10.04 Lucid Mini Remix (i386)"
HTTP = "http://www.ubuntu-mini-remix.org/download/10.04/ubuntu-mini-remix-10.04-i386.iso"
FileName = "ubuntu-mini-remix-10.04-i386.iso"
CASE "10.04 Lucid Mini Remix (amd64)"
HTTP = "http://www.ubuntu-mini-remix.org/download/10.04/ubuntu-mini-remix-10.04-amd64.iso"
FileName = "ubuntu-mini-remix-10.04-amd64.iso"
END SELECT
' SHELL "wget -O " & Dir.Value & "/" & FileName & " " & HTTP 'già presente ma attualmente disabilitato
procWget = SHELL "wget -O " & Dir.Value & "/" & FileName & " " & HTTP FOR READ AS "DownloadProgress"
END
PUBLIC SUB DownloadProgress_Read()
DIM sWgetMessage AS String
DIM sPercentuale AS String
'leggo i messaggi dal processo wget
READ #LAST, sWgetMessage, -256
'Tolgo i falsi positivi (% nell'URL da scaricare)
IF InStr(sWgetMessage, "http://") > 0 THEN RETURN
'Salvo comunque tutto l'output per controllare poi
'che il download non sia già finito mentre aggiorno la progressbar
$sAllWgetOutput &= sWgetMessage
'Se nell'output di wget c'è la percentuale aggiorno la progress bar
IF InStr(sWgetMessage, "%") > 0 THEN
'ricavo la percentuale dal primo elemento della stringa dopo '%'
sPercentuale = Split(sWgetMessage, "%", "", TRUE)[0]
'elimino i punti e gli spazi
sPercentuale = Trim$(Replace$(sPercentuale, ".", ""))
TRY ProgressBar1.Value = Val(sPercentuale) / 100
WAIT 0.01
'se nel output totale c'e' il 100% aggiorno la progressbar
IF InStr($sAllWgetOutput, "100%") > 0 THEN
ProgressBar1.Value = 1
WAIT
ENDIF
ENDIF
END
PUBLIC SUB Quit_Click()
ME.Close
FMain.Show
END
grazie
