Differenze tra le versioni di "Pseudo-ProgressBar in un'applicazione 'a riga di comando'"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Se si scrivendo un'applicazione ''a riga di comando'' (quindi senza supporto grafico), evidentemente <SPAN Style="text-decoration:underline">non</span> sarà possibile utilizzare l'oggetto grafico ''ProgressBar''. Per ottenere, allora, in console/Terminale un ''effetto'' simile ad una ''ProgressBar'', può essere utilizzata una soluzione, che adopera ovviamente caratteri, simile alla seguente:
 
Se si scrivendo un'applicazione ''a riga di comando'' (quindi senza supporto grafico), evidentemente <SPAN Style="text-decoration:underline">non</span> sarà possibile utilizzare l'oggetto grafico ''ProgressBar''. Per ottenere, allora, in console/Terminale un ''effetto'' simile ad una ''ProgressBar'', può essere utilizzata una soluzione, che adopera ovviamente caratteri, simile alla seguente:
 +
Private Const LUNGHEZZA As Byte = 50
 +
 +
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
   Dim b As Byte
+
   Dim b, c, d As Byte
 +
 +
  Repeat
 +
    Inc b
 +
    For d = 1 To 100 / LUNGHEZZA
 +
      Inc c
 +
      Write "\r\e[42m" & Space(b) & "\e[0m" & Space(LUNGHEZZA + 1 - b) & c & "%"
 +
      Flush
 +
      Wait 0.05
 +
    Next
 +
  Until b == LUNGHEZZA
 
    
 
    
  For b = 1 To 50
 
    Inc c
 
    Write "\r" & String(b, "=") & "]" & Space(51 - b) & CStr(c) & "%"
 
    Flush
 
    Wait 0.1
 
    Inc c
 
    Write "\r" & String(b, "=") & "]" & Space(51 - b) & CStr(c) & "%"
 
    Flush
 
    Wait 0.1
 
  Next
 
 
 
 
  '''End'''
 
  '''End'''
Se si vorrà avere l'effetto di una barra colorata (in verde), entrambe le righe con la funzione "Write" dovranno essere cambiate così:
+
Se si vorrà avere l'effetto di una barra colorata (in verde), la riga con la funzione "Write" dovrà essere cambiata così:
 
   Write "\r\e[42m" & Space(b) & "\e[0m" & Space(51 - b) & CStr(c) & "%"
 
   Write "\r\e[42m" & Space(b) & "\e[0m" & Space(51 - b) & CStr(c) & "%"

Versione delle 20:49, 20 gen 2022

Se si scrivendo un'applicazione a riga di comando (quindi senza supporto grafico), evidentemente non sarà possibile utilizzare l'oggetto grafico ProgressBar. Per ottenere, allora, in console/Terminale un effetto simile ad una ProgressBar, può essere utilizzata una soluzione, che adopera ovviamente caratteri, simile alla seguente:

Private Const LUNGHEZZA As Byte = 50


Public Sub Main()
 
 Dim b, c, d As Byte

 Repeat
   Inc b
   For d = 1 To 100 / LUNGHEZZA 
     Inc c
     Write "\r\e[42m" & Space(b) & "\e[0m" & Space(LUNGHEZZA + 1 - b) & c & "%"
     Flush
     Wait 0.05
   Next
 Until b == LUNGHEZZA
 
End

Se si vorrà avere l'effetto di una barra colorata (in verde), la riga con la funzione "Write" dovrà essere cambiata così:

 Write "\r\e[42m" & Space(b) & "\e[0m" & Space(51 - b) & CStr(c) & "%"