[Rio-pm] Limpar tela

Aureliano Guedes guedes_1000 em hotmail.com
Domingo Abril 15 13:21:15 PDT 2012


Boa, gostei da barrinha... hahaha, 
Obrigado por ajudar, entendi, mas tentei dessa forma
perl -e '$| = 1; @s = qw(. .. ...); while(++$i) { print $s[$i % @s], "\r"; sleep 1; }'
para fazer os pontinhos mas não adiantou, quando chega nos 3 pontinhos para

From: creaktive em gmail.com
Date: Sun, 15 Apr 2012 11:36:51 -0300
To: rio-pm em pm.org
Subject: Re: [Rio-pm] Limpar tela

A clássica "barrinha girano":
perl -e '$| = 1; @s = qw(.\ .\.\ .\.\.\); while(++$i) { print $s[$i % @s], "\r" }'
Repare no "$| = 1" no começo, isso força o flush do output para cada print (o default é flush quando encontra um caractere LF, "\n").

Agora, para imprimir coisas diferentes na mesma linha de uma forma razoavelmente compatível, é só usar o caractere CR, "\r").Nota de rodapé: texto no formato "DOS" termina as linhas com CRLF; já o formato "UNIX" presume que LF já basta. Se não me falha a memória, MacOS antes do X usava apenas CR.

Também recomendo dar uma olhada no https://metacpan.org/module/Term::ProgressBar
ABS()




On Sun, Apr 15, 2012 at 11:15, Aureliano Guedes <guedes_1000 em hotmail.com> wrote:






O problema maior é apagar somente os pontos, deixando na tela tudo aquilo que ja foi impresso.


From: guedes_1000 em hotmail.com


To: rio-pm em pm.org
Date: Sun, 15 Apr 2012 14:04:24 +0000
Subject: [Rio-pm] Limpar tela







Bom dia,
Monges.

Estava pensando se teria como limpar tela sem o uso de recursos externos pela função "system",
pois o uso dela limita a portabilidade entre plataformas.

Digamos que eu tenha uma rotina que imprima na tela de 1 a 3 pontos, como aquela barra


de atualização do Windows.

_____________________________________________________________________
my $string = '.';

while (($string eq '.') or ($string eq '..') or ($string eq '...')){


                    
    if (($string eq '.') or ($string eq '..')){
        print $string, "\n";
        $string .= '.'; 
    }                    
    
    else {

        print $string, "\n";

        chop $string; 
        chop $string;
    }
    
    sleep 1; 
}
_____________________________________________________________________

mas eu quero que a cada print a tela seja limpada de forma a aparecer so o print da vez,


contudo mantendo a portabilidade do codigo entre as plataformas.

Alguma forma simples de fazer isso??

Desde já grato,
Aureliano Guedes.
 		 	   		  

_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  

_______________________________________________

Rio-pm mailing list

Rio-pm em pm.org

http://mail.pm.org/mailman/listinfo/rio-pm



_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120415/5bb7502c/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm