3

基本的なC#コンソールアプリケーションがあり、Webサイトからログを取得しますが、100行が経過すると、古いログが削除され、ユーザーは上にスクロールしてそれらを表示できなくなります。保存するサイズを増やす方法はありますか?

4

3 に答える 3

11

Console.SetBufferSize()は、より大きなバッファーを購入します。ただし、いくつかの問題があります。最大サイズには上限があり、SetBufferSize()メソッドの引数検証コードにバグがあります。Int16.MaxValueは、要求できる最大の行数であると報告されています。これは1つずつのバグです。Windows 7では、次を使用できます。

static void Main(string[] args) {
    Console.SetBufferSize(Console.BufferWidth, 32766);
    // etc..
}

古いオペレーティングシステム(XPなど)では、はるかに厳しい制限があり、以前はバッファサイズが65536バイトに制限されていました。確認するものはもうありません。それらのおそらく有効なコードは次のとおりです。

    static void Main(string[] args) {
        var lines = 65536 / 2 / Console.BufferWidth;
        Console.SetBufferSize(Console.BufferWidth, lines);
        // etc..
    }
于 2012-10-23T23:56:47.100 に答える
1

Console.SetBufferSize() http://msdn.microsoft.com/en-us/library/system.console.setbuffersize.aspxを使用できます

于 2012-10-23T22:57:18.190 に答える
0

Console.SetOutは、コンソール出力をファイルにリダイレクトするのにも役立つ場合があります。例については、リンクをたどってください。 http://www.java2s.com/Code/CSharp/Development-Class/DemonstratesredirectingtheConsoleoutputtoafile.htm

于 2012-10-23T23:05:16.703 に答える