Pourcentage avancement [PERL] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 03-03-2009 à 15:11:57
amha, ta question irait mieux sur prog qu'OSA
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
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
Marsh Posté le 03-03-2009 à 15:30:45
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 !
Marsh Posté le 03-03-2009 à 15:39:10
Ben \r c'est pas spécifique à perl, ça fonctionne quel que soit le langage (sur un système unix, bien entendu ).
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
Pour aller à la ligne suivante (affichage classique), c'est "\n" ("line feed", retour à la ligne).
Marsh Posté le 03-03-2009 à 15:43:25
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 ! :-)
Marsh Posté le 03-03-2009 à 20:01:12
En shell ca peux donner ca :
for i in {0..100}; do echo -en "${i}%\r"; sleep .5; done
Marsh Posté le 04-03-2009 à 09:14:36
sputnick a écrit : En shell ca peux donner ca : |
Tu veux dire en bash, je suppose
Marsh Posté le 04-03-2009 à 09:22:38
non mais le monsieur demandait en perl quoi
et à priori, il sait se servir de \r aussi
bref
Marsh Posté le 17-03-2009 à 13:24:04
sputnick a écrit : En shell ca peux donner ca : |
Et comment règle t'on le temps pour qu'il soit cohérent avec le traitement que l'on fait tourner ??
Marsh Posté le 17-03-2009 à 20:59:59
Regarde du coté de "pv"; exemple :
find / | pv 1>/dev/null
ou alors zenity avec un truc du genre :
Code :
|
Marsh Posté le 03-03-2009 à 14:41:41
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