|
.NET TIPS コンソール・アプリケーションで進行状況を表示するには?[2.0のみ、C#、VB]デジタルアドバンテージ 一色 政彦2007/03/29 |
![]() |
|
|
|
「TIPS:時間がかかる処理の進行状況をダイアログで表示するには?」では、Windowsアプリケーションにおいて、時間がかかる処理の進ちょく状況をプログレス・メーター(ProgressBarコントロール)などを使ってエンド・ユーザーに提示する方法を紹介している。これと同じようなことは、コンソール・アプリケーションにおいても(時間がかかる処理などで)行いたいことがあるだろう。
.NET Framework 2.0では、「TIPS:コンソール画面でカーソルを自由に移動させるには?」で紹介しているように、コンソール画面上のカーソルを扱う機能が大きく拡張されたため、このようなプログレス表示も簡単に実装できる。そこで本稿では、その簡単な実装サンプルを示すことにする。
1%ごとに進行状況を示すサンプル・プログラム
次の画面のコンソール・アプリケーションは、棒が右回りにくるくる回転するアニメーションがテキストによって表示され(「/」「―」「\」「|」「/」「―」「\」「|」という順番にテキストが更新される)、またその右に実際のパーセンテージがテキスト表示されるというものだ。
![]() |
||||||
| 処理の進ちょくをプログレス表示するコンソール・アプリケーション | ||||||
| 処理の進行状況を表示するコンソール・アプリケーションの例。 | ||||||
|
これを実装するプログラム・コードは次のとおりだ。
|
||
| 処理の進ちょくをプログレス表示するサンプル・プログラム(上:C#、下:VB) |
このコードのポイントは、Consoleクラス(System名前空間)のSetCursorPositionメソッドを使ってカーソル位置を移動することにより、コンソール画面上の同じ位置に的確にテキストを出力しているところだ(※カーソルの位置を移動しないと、テキストの表示位置が移動して、前に書いたテキストが残ったままになってしまう)。なお、ConsoleクラスのCursorTopプロパティは、現在カーソルのある行位置を取得するためのものである。
また、ConsoleクラスのCursorVisibleプロパティはカーソルの表示/非表示を切り替えるためのものである。これらのコンソール画面上のカーソル処理については、「TIPS:コンソール画面でカーソルを自由に移動させるには?」をご参照いただきたい。
棒(|)が回るアニメーションについては、(100%中の)パーセンテージを4で割った余り(=剰余)によって「/」「―」「\」「|」のどのテキストにするかを決定している。
パーセンテージのテキスト表示については、「TIPS:数値を右詰めや0埋めで文字列化するには?」で紹介する書式指定を活用している。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:コンソール・アプリケーション 処理対象:画面 使用ライブラリ:Consoleクラス(System名前空間) 関連TIPS:時間がかかる処理の進行状況をダイアログで表示するには? 関連TIPS:コンソール画面でカーソルを自由に移動させるには? 関連TIPS:数値を右詰めや0埋めで文字列化するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



