DOS-Konsolenausgabe: limitierte Zeilenzahl?

Status
Nicht offen für weitere Antworten.

HeBr

Mitglied
Hallo Forum,

hab ein Programm, das jedemenge Zeilen mit Text auf die Konsole schreibt - zur Erleichterung bei der Fehlersuche dieses Programms.
Nun ist es so, dass nich alle Zeilen zu lesen sind, weil die ersten x (1000 oder so) wohl gelöscht werden - also nur noch die letzen y Zeilen zu lesen sind.
Kann ich Java irgendwie klarmachen, dass die Konsolenausgabe kurz angehalten werden soll, bis ich eine Taste drücke?
Bei DOS gibt es ja |more dafür, vieleicht gibt es sowas ja auch für Java...

Laut Thread:
www.java-forum.org/de/viewtopic.php?t=17567&highlight=konsole
können ab Windows 2000+ beliebig viele Zeilen ausgegeben werden. Hätte XP, funktioniert aber nicht...

Gruß

HeBr
 

thE_29

Top Contributor
Soviel hat das mit dem OS nicht mehr zum tun!

Glaub ab Win98 kann man das einstellen wieviele Zeilen Puffer die Konsole haben kann.

Du musst bei einem Shell Fenster auf die Titelleiste Rechtsklick->Eigenschaften gehn und beim Reiter Layout die Fensterpuffergröße ändern!

Soviele Zeilen wie du halt brauchst!
 

HeBr

Mitglied
Jo, @ thE_29 Problem gelöst - hätte ich eigentlich selbst drauf kommen können, dass man die Zeilenzahl ändern kann...
@ Hobbit_im_Blutrausch: wollte mir ersparen alles als .txt auszugeben... - Ziel erreicht :D

Danke euch beiden
 

L-ectron-X

Gesperrter Benutzer
Ich glaube momentan nicht, dass man die Konsolenausgabe anhalten kann, während ein Programm darüber seine Ausgaben macht, es sei denn, man verwendet einen Thread, der sich nur um die Ausgabe kümmert.
Du könntest auch alle Ausgaben in einer Liste sammeln und dann ausgeben, wenn Du dafür Zeit hast.
Dazu könntest du dir auch eine Methode schreiben, der du angibst, wie viele Zeilen maximal auf einen Schwung ausgegeben werden sollen.
 

thE_29

Top Contributor
Naja, so ist das auch wieder nicht!

Wenn man String mit \n\n drinnen übergibt, spinnt das noch, aber das war jetzt ne 7 min Arbeit :)

Code:
import java.io.PrintStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;

public class StopStream extends PrintStream
{
  private int iLineStop = -1;
  private int iCurLine = -1;
  private String strMsg = "Hit enter to continue...";
  
  public StopStream(OutputStream out)
  {
    super(out);
  }

  public StopStream(OutputStream out, boolean autoFlush)
  {
    super(out, autoFlush);
  }

  public StopStream(OutputStream out, boolean autoFlush, String encoding) throws
      UnsupportedEncodingException
  {
    super(out, autoFlush, encoding);
  }
  
  
  public void setStopCount(int iLines)
  {
    this.iLineStop = iLines;
    this.iCurLine = 0;
  }
  
  public boolean isStopSet()
  {
    return iLineStop == -1 ? false : true;
  }
  
  public void removeStopSet()
  {
    this.iLineStop = -1;
  }
  
  public int getCurrentLineCount()
  {
    return this.iCurLine;
  }
  
  public int getLineStop()
  {
    return this.iLineStop;
  }
  
  public String getMessage()
  {
    return this.strMsg;
  }
  
  public void setMessage(String newMsg)
  {
    this.strMsg = newMsg;
  }
  
  private void handleStop(String str)
  {
    handleStop(str.split("\n").length - 1);
  }
  
  private void handleStop(String str,int iAdd)
  {
    handleStop(str.split("\n").length  - 1 + iAdd);
  }
  
  private void handleStop(int iAdd)
  {
    if(this.iLineStop != -1)
    {
      this.iCurLine += iAdd;
      if (this.iCurLine >= this.iLineStop)
      {
        waitForEnter();
        this.iCurLine = 0;
      }
    }
  }
  
  private void handleStop()
  {
    handleStop(1);
  }
  
  private void waitForEnter()
  {
    try{
      super.write(this.strMsg.getBytes());
      new java.io.DataInputStream(System.in).read();
    }
    catch(Exception ex)
    {}
  }
  
  
  public void println()
  {
    super.println();
    handleStop();
  }
  
  public void println(boolean x)
  {
    super.println(x);
    handleStop();
  }
  
  public void println(char x)
  {
    super.println(x);
    handleStop();
  }
  
  public void println(char []x)
  {
    super.println(x);
    handleStop(new String(x),1);
  }
  
  public void println(double x)
  {
    super.println(x);
    handleStop();
  }
  
  public void println(float x)
  {
    super.println(x);
    handleStop();
  }
  
  public void println(int x)
  {
    super.println(x);
    handleStop();
  }
  
  public void println(long x)
  {
    super.println(x);
    handleStop();
  }
  
  public void println(Object x)
  {
    super.println(x);
    if(x != null && x.toString() != null)
      handleStop(x.toString(),1);
  }
  
  public void println(String x)
  {
    super.println(x);
    if(x != null)
      handleStop(x,1);
  }
  
  public void print(Object x)
  {
    super.print(x);
    if(x != null && x.toString() != null)
      handleStop(x.toString());
  }
  
  public void print(String x)
  {
    super.print(x);
    if(x != null)
      handleStop(x);
  }
}

Anzuwenden:

Code:
    StopStream test = new StopStream(System.out);
    test.setStopCount(2);
    System.setOut(test);

Danach einfach ein paar System.out.println("bla");..... und man hat das gewünschte Ergebnis ;)
 

HeBr

Mitglied
@ thE_29: du hast das Ding in 7 min programmiert und ich werde sehr wahrscheinlich 1h brauchen, um überhaupt zu verstehen, was du hier gemacht hast... Hätte ich so ein Programmiertempo drauf, dann wäre ich mit meiner Arbeit sehr wahrscheinlich schon seit 3 Wochen fertig!
Danke
HeBr
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Konsolenausgabe verschiebt sich Java Basics - Anfänger-Themen 8
Marlena Bauer Konsolenausgabe in .txt speichern Java Basics - Anfänger-Themen 6
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
D Konsolenausgabe Zahlenfolge Rekursion Java Basics - Anfänger-Themen 3
A Konsolenausgabe: Hinter letztes Element ein "}" Java Basics - Anfänger-Themen 2
W Problem mit Konsolenausgabe bei StringTokenizer Java Basics - Anfänger-Themen 2
J Erste Schritte Konsolenausgabe in Datei umleiten Java Basics - Anfänger-Themen 22
A Keine Konsolenausgabe Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
S Konsolenausgabe ales JOptionPane? Java Basics - Anfänger-Themen 5
N Input/Output Konsolenausgabe in Textdatei speichern/umleiten Java Basics - Anfänger-Themen 7
P info()-Methode mit Objektrückgabe: Konsolenausgabe möglich? Java Basics - Anfänger-Themen 8
A Aus .jar Konsolenausgabe Java Basics - Anfänger-Themen 6
M Konsolenausgabe ohne Zeilenumbruch Java Basics - Anfänger-Themen 3
G konsolenausgabe als *.txt speichern ? Java Basics - Anfänger-Themen 5
C Konsolenausgabe in String Java Basics - Anfänger-Themen 2
G Konsolenausgabe einlesen Java Basics - Anfänger-Themen 7
O Konsolenausgabe auf TextArea umleiten Java Basics - Anfänger-Themen 4
D Konsolenausgabe formatieren Java Basics - Anfänger-Themen 2
T Konsolenausgabe Pipen Java Basics - Anfänger-Themen 4
D Konsolenausgabe leeren Java Basics - Anfänger-Themen 16

Ähnliche Java Themen


Oben