Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 7

Как сделать Progress bar

28.06.2021, 13:09. Показов 2368. Ответов 3

Студворк — интернет-сервис помощи студентам
Я перевожу файл в Base64 и вывожу кодировку на экран
C#
1
2
3
            Byte[] bytes = File.ReadAllBytes(_path);
            String base64 = Convert.ToBase64String(bytes);
            Console.Write(base64);
В процессе у меня пару минут занимает перевести файл в пол ГБ, за это время в консоль выводится сам Base64
Как заменить длинный текст Base64 на Progress bar?
Т.е программа запускается и в консоль выводится только условный Progress bar
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2021, 13:09
Ответы с готовыми решениями:

Несколько Progress Bar ов
Всем привет. У меня есть форма, на которой юзер вводит некое неотрицательное число и, по нажатии на кнопку, появляются Progress Bar'ы в...

Как сделать progress bar на копирование папки с файлами и папками?
Помогите. Как сделать progress bar на копирование папки с файлами и папками. Если это очень сложно, хотя бы как сделать сообщение об...

Как изменить форму Progress Bar'a?
Всем привет. Есть ли воможность изменить форму прогрс бара? допустим что бы он был круглым(или полукруглым). И еще, можно ли так же...

3
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.06.2021, 18:05
Цитата Сообщение от Liriant Посмотреть сообщение
Т.е программа запускается и в консоль выводится только условный Progress bar
А куда сама закодированная строка потом девается? В файл какой-то пишется?
0
0 / 0 / 0
Регистрация: 05.04.2019
Сообщений: 7
28.06.2021, 18:54  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
А куда сама закодированная строка потом девается? В файл какой-то пишется?
Да не важно на самом деле, хоть в файл хоть обратно в исходный вариант
Просто нужен бар для показывания прогресса
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.06.2021, 20:05
Лучший ответ Сообщение было отмечено Liriant как решение

Решение

Цитата Сообщение от Liriant Посмотреть сообщение
Да не важно на самом деле, хоть в файл хоть обратно в исходный вариант
Ну пусть тогда будет файл.

Цитата Сообщение от Liriant Посмотреть сообщение
Просто нужен бар для показывания прогресса
Первым делом я бы немного изменил подход, а то по пол-гига заливать разом в память — как-то так себе затея.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;
 
const int MB = 1024 * 1024;
 
using Stream source = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.None, 10 * MB, true);
using Stream crypto = new CryptoStream(source, new ToBase64Transform(), CryptoStreamMode.Read);
using Stream output = File.Create("output.txt");
 
Task encode = crypto.CopyToAsync(output);
while (source.Position < source.Length)
{
    Report(source.Position, source.Length);
    await Task.Delay(100);
}
 
await encode;
Report(source.Position, source.Length);
Console.WriteLine();
 
void Report(long current, long max)
{
    Console.Write($"\r{current} / {max} ({1.0 * current / max:P2})");
}
Или если хотите красивостей, то поставьте пакет Spectre.Console:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;
using Spectre.Console;
 
const int MB = 1024 * 1024;
 
using Stream source = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.None, 10 * MB, true);
using Stream crypto = new CryptoStream(source, new ToBase64Transform(), CryptoStreamMode.Read);
using Stream output = File.Create("outpu.txt");
 
Task encode = crypto.CopyToAsync(output);
 
await AnsiConsole
    .Progress()
    .Columns(
        new SpinnerColumn(),
        new TaskDescriptionColumn(),
        new ProgressBarColumn(),
        new PercentageColumn(),
        new TransferSpeedColumn(),
        new RemainingTimeColumn())
    .AutoClear(true)
    .StartAsync(async ctx =>
    {
        ProgressTask task = ctx.AddTask("Encoding to Base64", maxValue: source.Length);
        while (source.Position < source.Length)
        {
            task.Value = source.Position;
            await Task.Delay(100);
        }
 
        await encode;
        task.Value = task.MaxValue;
    });
 
Console.WriteLine("Done!");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2021, 20:05
Помогаю со студенческими работами здесь

Как подключить progress bar к ZipFile.ExtractToDirectory();
Проблема заключается в том что я не знаю как узнать вес распакованных файлов в C#. Если щелкнуть правой клавишей по Zip архиву то можно...

Как вычислить шаг прогресса в Progress Bar
Решил попробовать поработать с Progress Bar-ом в windows forms. Интерисует как он работает, например в тех же установщиках, как вычисляется...

Как заполнить progress bar со временем, не прерывая роботы программы
Есть progress bar и есть pictureBox с гиффкой, так от, нужно заполять progressBar каждые 100 мс, дабы можно было в любое время закрыть...

Progress Bar, как посчитать ориентировочное время работы приложения на сервере?
На сайте реализована такая фича: Клиент кликает кнопку, и всё, что он видит на экране печатается в ворде с помощью Word componentы....

Progress Bar
Подскажите как сделать чтоб например я создал Progress Bar и один Button. И когда я нажимаю на Button Progress Bar не полностью проходил а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru