...io m'ero inventato una cosa così: :-X
Private Const LUNGHEZZA As Byte = 50
Public Sub Main()
Dim b, c As Byte
For b = 1 To LUNGHEZZA
Inc c
Write "\r" & String(b, "=") & "]" & Space(LUNGHEZZA + 1 - b) &
CStr(c * (100 / LUNGHEZZA)) & "%"
Flush
Wait 0.1
Next
End
Se si vuole avere un effetto grafico di barra "alla Milio ", la riga con la funzione "Write" dovrà essere cambiata così:
Write "\r\e[42m" & Space(b) & "\e[0m" & Space(51 - b) & CStr(c * (100 / LUNGHEZZA)) & "%"
...ecco comunque un esempio pratico, nel si mostrerà lo stato d'avanzamento in percentuale della copia di un file:
Private Const LUNGHEZZA As Byte = 50
Public Sub Main()
Dim fl1, fl2 As File
Dim b, c As Byte
Dim k As Integer
Dim orig, s As String
orig = "/percorso/del/file/da/copiare"
fl1 = Open "/tmp/copia" For Create ' Percorso ove ad esempio il file verrà copiato
fl2 = Open orig For Read
k = (Lof(fl2) \ 100)
c = 100 \ LUNGHEZZA
Repeat
Inc b
If b < 101 Then
Write "\r" & String(b \ c, "=") & "]" &
Space(LUNGHEZZA + 1 - (b \ c)) & CStr(b) & "%"
Flush
Endif
Read #fl2, s, -k
Write #fl1, s, -k
Until Eof(fl2)
fl2.Close
fl1.Close
If Stat("/tmp/copia").Size == Stat(orig).Size Then Print "\nCopia del file avvenuta con successo."
End