.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」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|