Schrift
[thread]7566[/thread]

bei print ein Zeichen zurückspringen

Leser: 1


<< >> 7 Einträge, 1 Seite
Gast Gast
 2005-12-22 11:09
#61289 #61289
Hallo,
ich möchte mir als Statusanzeige einen "Propeller" bauen...
(Bei Punkten läuft der Bildschirm immer voll)
Also die Zeichen "/" , "--" und "\"  immer nacheinander auf der gleichen Position ausgeben.
Hat jemand eine Idee dazu ?

Danke
Volker
Taulmarill
 2005-12-22 11:31
#61290 #61290
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ein zeichen zurückgehen kannst du mit print "\b";. du solltest auch den ausgabepuffer ausschalten (normalerweise werden nur ganze zeilen ausgegeben). das macht man mit $| = 1;.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2005-12-22 11:34
#61291 #61291
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
probier mal
Code: (dl )
1
2
3
4
5
6
7
8
$| = 1;
my %hash = (0 => '-', 1 => '\', 2 => '|', 3 => '/');
my $fortschritt = 0;
for(0..10){
  print $hash{$fortschritt},"\b";
  $fortschritt++;
  $fortschritt = 0 if($fortschritt == 4);
}
\n\n

<!--EDIT|renee|1135244083-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Relais
 2005-12-22 11:37
#61292 #61292
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Guest,22.12.2005, 10:09]die Zeichen "/" , "--" und "\" immer nacheinander auf der gleichen Position ausgeben.[/quote]
hab gerade mal einen gebastelt, der auf ascii-(kompatiblen)-Konsolen läuft.

Eingentlich ist das wichtigste, den jeweiligen Backspace-Character zu kennen. Das sollte eigentlich \b sein, doch man kann sich leider nicht drauf verlassen.

Unix Shells:
Code: (dl )
perl -e '$|=1; my @chars = qw(- \\ | /); while ( 1 ) { for ( @chars ) { print $_; select(undef, undef, undef, 0.2); print "\b" } }'


Dosenprompt:
Code: (dl )
c:\cygwin\bin\perl -e "$|=1; my @chars = qw(- \\ | /); while ( 1 ) { for ( @chars ) { print $_; select(undef, undef, undef, 0.2); print qq(\010) } }"


Viel Spaß.\n\n

<!--EDIT|Relais|1135244379-->
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
sesth
 2005-12-22 12:55
#61293 #61293
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Bei mit läuft das unter Win32 mit "\r".
Code: (dl )
    printf "%5d from %5d(%3d %%): %50.50s\r", $i, $fcnt, ($i * 100) / $fcnt, $file;

liefert zwar keinen Propeller, aber eine Textzeile, die sich laufend selbst überschreibt.
Gruß
Thomas
esskar
 2005-12-22 12:58
#61294 #61294
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
\010 ist das selbe wie \r
ptk
 2005-12-23 01:34
#61295 #61295
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
\r funktioniert auch unter Unix, ist also zu bevorzugen, wenn der Propeller am Anfang
steht.
<< >> 7 Einträge, 1 Seite



View all threads created 2005-12-22 11:09.