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 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''End''' | '''End''' | ||
− | Se si vorrà avere l'effetto di una barra colorata (in verde), | + | 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) & "%"