powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ProgressBar & TextFile processing
6 сообщений из 6, страница 1 из 1
ProgressBar & TextFile processing
    #32904947
leTaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть задача такого плана - нужно читать _очень_ большой текстовый файл >100 Mb обрабатывать его посторочно и отображать этот процесс в ProgressBar. меня интересует:

1. какие классы лучше для этого использовать (StreamReader, FileInfo etc.) чтобы не загружать весь файл целиком а именно читать его потстрочно.
2. как отобразить процесс обрабаотки в ProgressBar?

p.s. пока сделано так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
	public static void ProcessFiles(string file1, string file2, string file3, string file_out)
		{
			//int counter = 0;
			string line1, line2, line3;

			//Open a text file for reading
			System.IO.StreamReader str_file1 = new System.IO.StreamReader(file1);
			System.IO.StreamReader str_file2 = new System.IO.StreamReader(file2);
			System.IO.StreamReader str_file3 = new System.IO.StreamReader(file3);

			System.IO.StreamWriter file_final = new System.IO.StreamWriter(file_out);

			// Read the file and add it to the datagridview, if google related
			while (((line1 = str_file1.ReadLine()) != null) && ((line2 = str_file2.ReadLine()) != null) 
				&& ((line3 = str_file3.ReadLine()) != null))
			{
				file_final.WriteLine(line1 + line2 + line3);
			}

			str_file1.Close();
			str_file2.Close();
			str_file3.Close();
			file_final.Close();
		}
но незнаю еще как подступится к отображанию в ProgressBar и еще нужно будет выводить приблизителное время сколько осталось. Раньше с таким не сталкивался, кто может помочь как лучше подсчитать время и отобразить его в ProgressBar'е?
...
Рейтинг: 0 / 0
ProgressBar & TextFile processing
    #32904981
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объявлете свое собственное событие. В цикле while дергаете это событие. Рядом объявляете обработчик этого события. В обработчике изменяете прогресбар + делаете Application.DoEvents().
...
Рейтинг: 0 / 0
ProgressBar & TextFile processing
    #32905403
leTaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем понимаю, что даст имено событие? ведь можно просто написать функцию для изменения значений ProgressBar и вызывать ее в цикле?

мне хотелось бы узнать как произвести приблизительную оценку времени для обработки файлов...
...
Рейтинг: 0 / 0
ProgressBar & TextFile processing
    #32905593
Serg****
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.gotdotnet.ru/LearnDotNet/NETFramework/596.aspx
...
Рейтинг: 0 / 0
ProgressBar & TextFile processing
    #32906238
leTaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, прочитал статью, но из нее неочевидно как посчитать время час-мин-сек да и нет такой необходимости - обрабатывать файл только на потоках. Нужно :

1. считывать файл построчно, подходит ли для этого приведенный выше код.
2. подсчитать время в часах-минутах н аобработку файла.
...
Рейтинг: 0 / 0
ProgressBar & TextFile processing
    #32906298
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подсчитать время на обработку файла невозможно. Можно только оценить это время. Вы можете в первом проходе цикла подсчитать время, которое ушло на одну строку, а также ее размер. Оценить примерное кол-во строк (размер файла разделить на размер считанной уже строки). Умножить кол-во строк на время обработки одной строки. Итого получите примерное время. Estimated time в общем. В каждой итерации цикла вы можете это время корректировать с учетом только что обработанной строки.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ProgressBar & TextFile processing
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]