Schrift
[thread]6112[/thread]

format von stdout



<< >> 3 Einträge, 1 Seite
Gast Gast
 2004-03-03 03:45
#80491 #80491
hallo,

ich schaffe es einfach nicht mittels einem perlscript eine art progressbar in form von einer numerischen hochzählenden zahl über die bash auszugeben!
ich dachte ich könnte dies mittels der formatfunktion von perl realisieren <ausgabe erfolgt über write> , jedoch scheint es nicht zu gehen.

jedesmal wird die auszugebene zahl mittels newline unter die andere gesetzt ???
sie soll aber die bereits zuvor ausgegebene zahl überschreiben (also den descriptor zurücksetzen)!

hat jemand ein kleines beispiel für mich ...

cu...
coax
 2004-03-03 04:09
#80492 #80492
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
$|++;

my $len;
foreach my $digit (1..20) {
   $len = length $digit;
   print $digit;
   sleep 1;
   print "\b" x $len;
}

Mit print "\b" x $len; gehst du $len Zeichen zurueck, also vorher die laenge der Ausgabe holen um spaeter die Anzahl Zeichen zu haben die man zurueckgehen muss.

Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
Crian
 2004-03-04 11:09
#80493 #80493
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Zum Beispiel so:

Code: (dl )
1
2
3
4
5
6
7
8
binmode STDOUT;

$| = 1; # Windows 98 braucht das, Windows 2000 nicht.
for (1..100)
{
  print "$_%\r";
  sleep(1);
}


(siehe Snippet auf meiner Perlseite)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 3 Einträge, 1 Seite



View all threads created 2004-03-03 03:45.