Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Perl - Ausgaben an der selben Stelle

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.08.2004
    Beiträge
    14

    Perl - Ausgaben an der selben Stelle

    Hallo,
    ich möchte gerne in der DOS-Box eine Fortschrittsanzeige ausgeben.
    Hierzu soll eine Prozentzahl immer an der selben Stelle erscheinen. Die Vorherige Zahl soll quasi überschrieben werden.

    Kann mir vielleicht jemand einen Tipp geben, wie dies zu bewerkstelligen ist?

    Code:
    for($i=0; $i<=100; $i++) {
       print $i."%";  # Diese Ausgabe soll immer überschrieben werden
    }
    Danke
    sallo

  2. #2
    Registrierter Benutzer
    Registriert seit
    30.06.2005
    Beiträge
    155
    mit einem carriage return nach jeder prozent ausgabe sollte es gehen:

    Code:
    use FileHandle;
    autoflush STDOUT; 
    
    for($i=0; $i<=100; $i++) {
      print $i."%";  # Diese Ausgabe soll immer überschrieben werden
      sleep(1);
      print "\r";
    }

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.12.2001
    Ort
    anywhere before EOF
    Beiträge
    236
    Die einfachste Methode ist der Wagenrücklauf:
    Code:
    for (my $i = 0; $i <= 100; $i++) {
      print("\r$i %");
    }
    Also mit \r gheste halt zurück an Anfang der Zeile (die wird aber nicht gelöscht. Löschen kannst Du Zeichenweise mit \b.
    Wenns auch überl Zeilen gehen muss, dann musst Du mit Terminal-Steuerungssequenzen arbeiten, so (n)curses mässig. Gibts sicherlich Module für.

    Edit: OK, ich weiss, ich bin zu langsam für dieses Leben...
    chmod -R +t /*

  4. #4
    Registrierter Benutzer
    Registriert seit
    21.08.2004
    Beiträge
    14
    Danke, funktioniert einwandfrei

    sallo

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •