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

Da Gambas-it.org - Wikipedia.
Riga 5: Riga 5:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
   Dim b, c, d As Byte
+
   Dim b, c As Byte
 
   
 
   
   Repeat
+
   For b = 1 To LUNGHEZZA  
    Inc b
+
    Inc c
    For d = 1 To 100 / LUNGHEZZA  
+
    Write "\r\e[42m" & Space(b) & "\e[0m" & Space(LUNGHEZZA + 1 - b) &
      Inc c
+
          CStr(c * (100 / LUNGHEZZA)) & "%"
      Write "\r\e[42m" & Space(b) & "\e[0m" & Space(LUNGHEZZA + 1 - b) & c & "%"
+
    Flush
      Flush
+
    Wait 0.1
      Wait 0.05
+
  Next
    Next
 
  Until b == LUNGHEZZA
 
 
    
 
    
 
  '''End'''
 
  '''End'''
 
Se si vorrà avere l'effetto di una barra colorata (in verde), la riga con la funzione "Write" dovrà essere cambiata 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 * (100 / LUNGHEZZA)) & "%"

Versione delle 09:42, 21 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 As Byte

 For b = 1 To LUNGHEZZA 
   Inc c
   Write "\r\e[42m" & Space(b) & "\e[0m" & Space(LUNGHEZZA + 1 - b) &
         CStr(c * (100 / LUNGHEZZA)) & "%"
   Flush
   Wait 0.1
 Next
 
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 * (100 / LUNGHEZZA)) & "%"