Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
884 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [PERL] Pourcentage avancement

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] Pourcentage avancement

n°1118287
jeromax
Posté le 03-03-2009 à 14:41:41  profilanswer
 

Salut
je dois réaliser un script perl qui doit exécuter plusieurs taches assez longues en temps de traitement. Je souhaiterai donc montrer dans la console un pourcentage d'avancement. Par contre je souhaiterai que l'écran de la console ne change pas durant la mise à jour de ce pourcentage et qu'il ait une tête comme ça niveau graphique par exemple:
 
--------------------------
---Nettoyage des bases---
--------------------------
Nettoyage de la base: base1
Avancement: 36%
 
 
Vous voyez ce que je veux dire? je voudrai juste pouvoir changer les valeurs en gras. Mais je ne sais pas du tout comment faire. La recherche sur le net n'a rien donnée...  :??:  
Peut être existe-t-il aussi d'autres méthodes pour afficher ce pourcentage, une fenêtre externe?
Je prends toutes les ébauches de solutions...
 
merciiii
 
 
 
 

mood
Publicité
Posté le 03-03-2009 à 14:41:41  profilanswer
 

n°1118301
wedgeant
Da penguin inside
Posté le 03-03-2009 à 15:11:57  profilanswer
 

amha, ta question irait mieux sur prog qu'OSA [:cosmoschtroumpf]
sinon, en affichage "brut", tu ne peux pas changer le texte en gras si l'information est sur 2 lignes sans utiliser la librairie ncurse :non:
 
donc soit tu affiches tes informations modifiables sur une ligne avec un \r à la fin pour que ça soit réécrit automatiquement, soit tu regardes du côté de ncurses [:mrbrelle]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1118307
jeromax
Posté le 03-03-2009 à 15:30:45  profilanswer
 

merci, je ne connaissais pas le "\r" (je n'y connais pas grand chose en perl en même temps), je crois que je vais me débrouiller avec ça, je ne vais pas rajouter une autre librairie.
Merci bcp !

n°1118312
wedgeant
Da penguin inside
Posté le 03-03-2009 à 15:39:10  profilanswer
 

Ben \r c'est pas spécifique à perl, ça fonctionne quel que soit le langage (sur un système unix, bien entendu :o).
 
C'est un caractère "carriage return", autrement dit "retour charriot". Si tu mets ça à la fin d'une ligne de texte que tu souhaites afficher, ton curseur retourne automatiquement au début de cette ligne de texte à l'écran et tu peux donc réécrire par dessus cette ligne :jap:
Pour aller à la ligne suivante (affichage classique), c'est "\n" ("line feed", retour à la ligne).


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1118314
jeromax
Posté le 03-03-2009 à 15:43:25  profilanswer
 

oui je me suis mal exprimé, je connais les \r et les \n mais je n'aurai pas eut l'idée d'utiliser \r pour cela mais c'est pas bête ! :-)

n°1118400
sputnick
bip...bip...bip...bip...bi...b
Posté le 03-03-2009 à 20:01:12  profilanswer
 

En shell ca peux donner ca :
for i in {0..100}; do echo -en "${i}%\r"; sleep .5; done

n°1118498
matafan
Posté le 04-03-2009 à 09:14:36  profilanswer
 

sputnick a écrit :

En shell ca peux donner ca :
for i in {0..100}; do echo -en "${i}%\r"; sleep .5; done


Tu veux dire en bash, je suppose :D

n°1118503
wedgeant
Da penguin inside
Posté le 04-03-2009 à 09:22:38  profilanswer
 

non mais le monsieur demandait en perl quoi :spamafote:
et à priori, il sait se servir de \r aussi :spamafote:
bref :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1118708
sputnick
bip...bip...bip...bip...bi...b
Posté le 04-03-2009 à 17:38:00  profilanswer
 

C'est pas bien dur de transposer ça en perl IMHO...

n°1122534
killou15
Posté le 17-03-2009 à 13:24:04  profilanswer
 

sputnick a écrit :

En shell ca peux donner ca :
for i in {0..100}; do echo -en "${i}%\r"; sleep .5; done


 
Et comment règle t'on le temps pour qu'il soit cohérent avec le traitement que l'on fait tourner ??
 


---------------
Mon feed :D : http://forum.hardware.fr/hfr/Achat [...] 1951_1.htm
mood
Publicité
Posté le 17-03-2009 à 13:24:04  profilanswer
 

n°1122618
sputnick
bip...bip...bip...bip...bi...b
Posté le 17-03-2009 à 17:58:12  profilanswer
 

Ben donne un exemple de traitement :°

n°1122627
killou15
Posté le 17-03-2009 à 19:00:55  profilanswer
 

Ben par exemple un transfert de fichier

n°1122647
sputnick
bip...bip...bip...bip...bi...b
Posté le 17-03-2009 à 20:59:59  profilanswer
 

Regarde du coté de "pv"; exemple :  
find / | pv 1>/dev/null
ou alors zenity avec un truc du genre :

Code :
  1. open($progress,"| zenity --progress --auto-close --auto-kill --title="FOOBAR" --text="Transfert" ; kill -9 $$" );


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [PERL] Pourcentage avancement

 

Sujets relatifs
erreur dans un script perlUtiliser awk dans Perl
Problème sur le passage de paramètre en PERL[Résolu][Perl] envoyer un mail HTML
[Pas résolu !] Problème de script Bash dans script Perlvmware -> use: command not found ... problème de perl ??
Pb entre les version Perl de SpamAssassinProbleme de perl
Plus de sujets relatifs à : [PERL] Pourcentage avancement


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR