' Gambas class file
PUBLIC hProcess AS Process
PRIVATE comando AS String
PRIVATE stringa AS String
PUBLIC SUB Button1_Click()
comando = "wget " & TextBox1.Text
PRINT comando
stringa = ""
Label1.Text = "scaricamento in corso"
hProcess = SHELL comando FOR READ AS "hProcess" 'creazione del processo
Timer1.Start
END
PUBLIC SUB hProcess_read()
'lettura del processo
DIM sLine AS String
DIM p, p1 AS String
DIM valore AS Float
DIM sBuf AS String
'
IF Lof(hProcess) THEN
READ #hProcess, sBuf, Lof(hProcess)
sBuf
END IF
p = InStr(sBuf, "%")
p1 = InStr(sBuf, "\n", p - 5)
IF p <> 0 AND p1 <> 0 THEN
TRY valore = Val(Trim(Mid$(sBuf, p1, p - p1))) / 100
ProgressBar1.Value = valore
ENDIF
END
PUBLIC SUB Timer1_Timer()
DIM i AS Integer
i = hProcess.State
IF i = 0 THEN
Timer1.Stop
ProgressBar1.Value = 100
Label1.Text = "finito"
ELSE
ENDIF
END
questo è un esempio di codice per lettura di uno stream lanciato con shell
wget sembra cmq non rispondere a questo tipo di codice, un alternativa e avviarlo con opzione -o per cui scrive l' output su un file, poi ad ogni evento timer vai a leggere il file e la percentuale di scaricamento
solo su alcuni file... strana la cosa Scioccato
wget scrive la percentuale solo dei file di cui riesce a saper ela dimensione e quindi il tempo di scaricamento, le pagine php sono dinamiche quindi non può sapere la loro dimensione