Hola a todos y a todas:
No se el motivo de que la barra no se genera del 0 al 100 %.
Código:
using System;
using System.Threading;
namespace Barra_progreso_consola_01_cs
{
class Program
{
static void Main(string[] args)
{
// Título de la ventana.
Console.Title = "Simulaor barra";
// Tamaño ventana consola.
Console.WindowWidth = 60; // X ancho.
Console.WindowHeight = 20; // Y altura.
// Cursor invisible.
Console.CursorVisible = false;
// Variables.
double barra = 58.00;
double porcentaje = 0.00;
Console.SetCursorPosition(17, 1);
Console.Write(" ");
Console.SetCursorPosition(17, 1);
Console.Write("");
// Dibujamos la barra del portentaje.
Console.SetCursorPosition(0, 3);
Console.Write("0 % 50 % 100 %");
Console.SetCursorPosition(0, 4);
Console.Write("┌────────────────────────────┬───────────────────────────┐");
Console.SetCursorPosition(0, 5);
Console.ForegroundColor = ConsoleColor.Yellow;
// Barra de progreso.
for (int i = 0; i <= barra; i++)
{
porcentaje = i / (barra / 100.00);
Console.Write("█"); // Muestra ASCII 219 Dec y DB en Hex.
//Console.Write((char)219);
// Console.Write(Encoding.ASCII.GetBytes((char)219));
porcentaje++; // Incrementa valor.
printCargando(porcentaje);
Thread.Sleep(20); // 100 ms o 0.1 segundos.
}
Console.ReadKey();
}
static void printCargando(double porcentaje)
{
Console.ForegroundColor = ConsoleColor.Gray;
Console.SetCursorPosition(0, 1);
// Por dos para que simule el 100%.
Console.Write("Cargado: " + (porcentaje).ToString("N2") + " %");
//Console.Write("Cargado: {0} %", (porcentaje).ToString("N2"));
//Console.Write($"Cargado: { (porcentaje).ToString() } %");
// Reestablecemos para que vuelva a imprimir bajo la línea de carga.
Console.ForegroundColor = ConsoleColor.Yellow;
Console.SetCursorPosition(0, 5);
}
}
}
Si se puede hacer con un mejor código, pues mejor. Seguro que hice chapuza al programarlo.
Un cordial saludos.