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 | + | 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''' | '''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)) & "%"