|
#1
|
|||
|
|||
|
Ciao,
sapete se esiste un modo per creare quella stampa a video (da terminale) che si aggiorna sovrascrivendosi? Ho bisogno di inserire un indicatore di % tipo 10% completato! ma non voglio trovarmi con la stampa di tutte le percentuali 5% completato 10% completato 15% completato .... .... Ho visto questa cosa su vecchi programmi in dos che facevano girare la barretta | / - \ | animandola a mo' di rotazione: credo esista anche per java! grazie gian |
|
#2
|
|||
|
|||
|
> sapete se esiste un modo per creare quella stampa a video (da terminale)
> che si aggiorna sovrascrivendosi? No, non è possibile con Java. Lo standar output è un PrintStream. Potrebbe essere anche una stampante, non necessariamente un lcd 17"... Diciamo che infatti per avere un'idea di quello che puoi fare con System.out puoi pensare ad una stampante (non sovrascrivere, non tornare 'su' di una riga,...). ciao tityrus |
|
#3
|
|||
|
|||
|
Pluncake wrote:
> Ciao, > sapete se esiste un modo per creare quella stampa a video (da terminale) > che si aggiorna sovrascrivendosi? > Ho bisogno di inserire un indicatore di % tipo > > 10% completato! > > ma non voglio trovarmi con la stampa di tutte le percentuali > > 5% completato > 10% completato > 15% completato > ... > ... > > Ho visto questa cosa su vecchi programmi in dos che facevano girare la > barretta | / - \ | > animandola a mo' di rotazione: credo esista anche per java! > grazie gian > > Ciao, dipende se il terminale è in grado di interpretare i caratteri di controllo. Se si basta usare backspace. Da una finestra dos questo (pessimo esempio fa quello che vuoi tu.Marco public class Test { public static void main(String[] args) { for( int i = 0; i < 10; i++) { try { System.out.print((char) 45); Thread.sleep(100); System.out.print((char) 8); System.out.print((char) 92); Thread.sleep(100); System.out.print((char) 8); System.out.print((char) 124); Thread.sleep(100); System.out.print((char) 8); System.out.print((char) 47); Thread.sleep(100); System.out.print((char) 8); } catch (InterruptedException ie) {} } } } -- replay: remove .duh.spam |
|
#4
|
|||
|
|||
|
tityrus wrote:
>>sapete se esiste un modo per creare quella stampa a video (da terminale) >>che si aggiorna sovrascrivendosi? > > > No, non è possibile con Java. Lo standar output è un PrintStream. > Potrebbe essere anche una stampante, non necessariamente un lcd 17"... > Diciamo che infatti per avere un'idea di quello che puoi fare con > System.out puoi pensare ad una stampante (non sovrascrivere, non > tornare 'su' di una riga,...). > ciao > tityrus Ciao, in realtà con una stampante puoi sovrascrivere, puoi tornare 'su' di una riga,.. Marco -- replay: remove .duh.spam |
|
#5
|
|||
|
|||
|
>sapete se esiste un modo per creare quella stampa a video (da terminale)
>che si aggiorna sovrascrivendosi? > Tranquillo, e' facilissimo! E' sufficiente usare il '\r', aka CR (carriage return) che "riporta il carrello" ad inizio riga: nel caso di un terminale video riporta il cursore ad inizio riga. Visto che e' domenica, e lavoro, mi prendo un momento di pausa e ti scrivo l'esempio+ .... Ok, fatto! E' un po' piu' complicato del necessario, ma ti illustra un po' tutto. public class ProgressDemo { public static void main(String args[]) { final char[] rotors = new char[]{'|', '/', '-', '\\'}; // simulazione che visualizza il progresso dell'operazione for (int i=0; i<=100; i++) { try {Thread.sleep(100L);} catch (InterruptedException ex) {} System.out.print('\r'); // torno a inizio riga System.out.print(rotors[i%4]); // stampo carattere rotante if (i%5 == 0) // ogni 5 passi aggiorno la percentuale { System.out.print(' '); System.out.print(i); // % completamento System.out.print("% completato"); // messaggio } } // alla fine pulisco tutto e stampo un messaggio System.out.print("\r"); // torno a inizio riga System.out.print("Finito!"); // stampo il messaggio System.out.print(" "); // pulisco il resto della riga } } Ciao, Bruno. -- | Bruno Bossola | A Java Software Engineer :-) | http://digilander.iol.it/bbossola | Membro del JUG Torino - http://www.jugtorino.it |
| Thread Tools | |
| Display Modes | |
|