[C#] ConsoleApp 模擬進度條應用
利用 Console.SetCursorPosition 在 ConsoleApp 下模擬進度條功能。
圖 1 ConsoleApp 模擬進度條圖片
using System;
namespace ConsoleApplication1
{
class Program
{
static int maxValue = 10000; // 表示數值最大值
static int factor = 2; // 表示 ProgressBar 每格 % 數
static void Main(string[] args)
{
for (int i = 0; i <= maxValue; i++)
{
Console.SetCursorPosition(0, 0);
int process = (int)(((float)i / maxValue) * 100 / factor);
Console.WriteLine(" ****** ConsoleApp ProgressBar Style 1 ... ****** ");
ProgressBarStyle1(process);
Console.WriteLine("\n ****** ConsoleApp ProgressBar Style 2 ... ****** ");
ProgressBarStyle2(process);
Console.WriteLine(string.Format("\n目前進度:{0}% ({1}/{2})", process * factor, i, maxValue));
if (i == 5000) { Console.ReadKey(); }
}
Console.WriteLine("Press any key to exit ..");
Console.ReadKey();
}
static void ProgressBarStyle1(int percent)
{
string str = "|";
for (int i = 1; i <= percent - 1; i++)
{
str += "=";
} str += ">";
for (int i = percent; i < 100 / factor; i++)
{
str += " ";
}
Console.WriteLine(string.Format("{0}| {1}%", str, percent * factor));
}
static void ProgressBarStyle2(int percent)
{
Console.Write("|");
for (int i = 1; i <= percent; i++)
{
Console.BackgroundColor = ConsoleColor.Yellow;
Console.Write(" ");
}
for (int i = percent; i < 100 / factor; i++)
{
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.Write(" ");
}
Console.BackgroundColor = ConsoleColor.Black;
Console.Write("| ");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(string.Format("{0}%", percent * factor));
Console.ForegroundColor = ConsoleColor.White; ;
}
}
}

留言
張貼留言