Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2015, 16:30   #21
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

По прежнему так же выводит(
Fil_1990 вне форума Ответить с цитированием
Старый 29.09.2015, 17:41   #22
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

проверил на том кусочке, что Вы выкладывали
Цитата:
Код:
"001,05,015,04/07/15 15:18,00:00:32,01,02,00,Picker can't detect all parts:Ck #1 A1",
"002,02,030,09/21/15 15:17,00:00:19,00,00,01,ATT unable to detect tray at Gripper",
"003,01,045,09/21/15 15:15,00:01:32,00,01,00,Aux tray is hanging on guides or stuck in gripper.",
"004,01,045,09/21/15 15:15,00:00:17,00,01,00,Aux tray is hanging on guides or stuck in gripper.",
"005,04,030,09/18/15 19:28,00:00:55,01,02,00,Missing sort device(s) on sort boat. B1",
"006,05,029,09/18/15 19:24,00:01:39,06,06,01,TS Picker missing parts:Ck #1 A1",
"007,05,016,09/18/15 19:21,113:34:12,00,01,00,Picker detects parts stuck in nests:Ck #1 A1",
"008,05,016,09/18/15 19:20,00:00:23,00,01,00,Picker detects parts stuck in nests:Ck #1 A1",
"009,05,016,09/18/15 19:17,220:23:34,02,03,00,Picker detects parts stuck in nests:Ck #1 A1",
"010,05,016,09/18/15 19:15,00:00:17,00,01,00,Picker detects parts stuck in nests:Ck #1 A1"
вроде всё корректно отработало.
Цитата:
Код:
Среднее время = 1.09:24:22
нужно смотреть ваш файл...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2015, 09:25   #23
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

В файле таких тысяча строк и всё в принципе......
Fil_1990 вне форума Ответить с цитированием
Старый 30.09.2015, 09:26   #24
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Можете код показать
Fil_1990 вне форума Ответить с цитированием
Старый 30.09.2015, 11:42   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

да код всё тот же..
Код:
	class Program
	{
		public static void Main(string[] args)
		{
			TimeSpan intervalsum = new TimeSpan();
			TimeSpan current_time;
			int countRepair = 0;
string[] readText = new string[10] {
"001,05,015,04/07/15 15:18,00:00:32,01,02,00,Picker can't detect all parts:Ck #1 A1",
"002,02,030,09/21/15 15:17,00:00:19,00,00,01,ATT unable to detect tray at Gripper",
"003,01,045,09/21/15 15:15,00:01:32,00,01,00,Aux tray is hanging on guides or stuck in gripper.",
"004,01,045,09/21/15 15:15,00:00:17,00,01,00,Aux tray is hanging on guides or stuck in gripper.",
"005,04,030,09/18/15 19:28,00:00:55,01,02,00,Missing sort device(s) on sort boat. B1",
"006,05,029,09/18/15 19:24,00:01:39,06,06,01,TS Picker missing parts:Ck #1 A1",
"007,05,016,09/18/15 19:21,113:34:12,00,01,00,Picker detects parts stuck in nests:Ck #1 A1",
"008,05,016,09/18/15 19:20,00:00:23,00,01,00,Picker detects parts stuck in nests:Ck #1 A1",
"009,05,016,09/18/15 19:17,220:23:34,02,03,00,Picker detects parts stuck in nests:Ck #1 A1",
"010,05,016,09/18/15 19:15,00:00:17,00,01,00,Picker detects parts stuck in nests:Ck #1 A1"
};

		//Объявляем интервал времени
		TimeSpan intervaltimesum = new TimeSpan();

		//Счётчик
		int countTime = 0;

		foreach (var s in readText) {
		   //Установка разделителем массива запятой
		   string[] elements = s.Split(',');
                
                   if (elements.GetLength(0) > 4) 
                   {
                   	try {
   	                	string[] times = elements[4].Split(':');
   						int hours = int.Parse(times[0]);
   						int minutes = int.Parse(times[1]);
   						int seconds = int.Parse(times[2]);
                           current_time = TimeSpan.FromSeconds(seconds) + TimeSpan.FromMinutes(minutes) + TimeSpan.FromHours(hours);
   						
                           Console.WriteLine("w: "+elements[4]);        //Вывод 4 элемента массива в файл
                           if(current_time.TotalHours>2){
                           	     Console.WriteLine("A: {0}",current_time);  // в отдельный файл выведем значение более 2-х часов
                           }
                           intervaltimesum += current_time;
                           countTime++;
                   	} catch (Exception) {
                   		
                   		throw;
                   	}
                   }
		}
            
        	//Вывод среднего времени в нужном формате
	        TimeSpan intervalAverage = TimeSpan.FromSeconds(intervaltimesum.TotalSeconds / countTime);
            	Console.WriteLine("Среднее время = {0}", intervalAverage);            

		Console.Write("Press any key to continue . . . ");
		Console.ReadKey(true);
		}
	}

выводите в файл туда же, куда выводите значение времени, в эту же строчку выводите суммарное время.
можно попытаться отследить, где косяк.

или дайте ваш файл (если он большой, то запакуйте в архив)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2015, 12:55   #26
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

вот файл с исходными данными
Вложения
Тип файла: txt COMMA.txt (83.3 Кб, 145 просмотров)
Fil_1990 вне форума Ответить с цитированием
Старый 30.09.2015, 15:16   #27
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Fil_1990 Посмотреть сообщение
вот файл с исходными данными
так.
посмотрел.
ну всё верно.
несмотря на то, что у Вас не все строчки таблицы попадают в обработку
(нужно цикл делать на 1000 строк:
Код:
        //Цикл для считывания строк
        for (int i = 19; i < 1019; i++)
            ...
на среднее значение это не сильно влияет.
я не знаю, что у там у Вас было раньше.
но сейчас среднее значение по вашим данным получается:
00:23:31 (23 минуты 31 секунда)
в выборке у нас 1000 строк.
умножаем 00:23:31 * 1000 получаем ~ 392 часа - это 16 суток и 8 часов

смотрим, сколько мы получили суммарное время (переменная intervaltimesum) - видим, что суммарное время равно:
all time = 16.07:59:46
в секундах это равно 1411186 секунд.
всё совпадает.

вот файл, где последовательно суммируются все интервалы.
Write.rar
я в нем косяков не увидел.

что Вас смущает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2015, 15:52   #28
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Меня ни чего не смущает, меня интересует почему среднее время стало меньше, или до этого он не брал позиции где были 220ч и 113ч?

По поводу перебора всех строк, мы же шапку пропускаем , иначе он ругается.
Что меняли в программе что выводить в таком виде стала?

Последний раз редактировалось Fil_1990; 30.09.2015 в 15:55.
Fil_1990 вне форума Ответить с цитированием
Старый 30.09.2015, 16:28   #29
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
По поводу перебора всех строк, мы же шапку пропускаем , иначе он ругается.
Вы не все строчки берёте.
у Вас в цикле было
Цитата:
Код:
            //Цикл для считывания строк
            for (int i = 19; i < 1000; i++)
а в вашем случае там должно было быть:
Код:
            //Цикл для считывания строк
            for (int i = 19; i < 1019; i++)
разницу я выделил. Понимаете, почему должно быть 1019?


Цитата:
Что меняли в программе что выводить в таком виде стала?
строку вывода в файл W поменял.
написал так:
Код:
                        W.WriteLine("{0} {1} {2}  \t\t currenttime = {3} alltime = {4}", i-18, elements[0], elements[4], current_time, intervaltimesum);
а после цикла добавил

Код:
            //Закрытие потока 
            A.Close();
            
            W.WriteLine("\n\n all time = {0} seconds = {1}",intervaltimesum,  intervaltimesum.TotalSeconds);

            //Вывод среднего времени в нужном формате
Цитата:
меня интересует почему среднее время стало меньше
не знаю.
не должно оно стать меньше.
но, я бы уже не стал исследовать, почему раньше было больше (кстати, а намного больше было то?)
вроде бы сейчас нормально считает. На мой взгляд.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2015, 17:02   #30
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Раньше он показывал 5 часов с чем-то, сейчас 23 минуты.
Просто правильный расчёт времени важен т.к инженер технолог эти данные будет обрабатывать.
Спасибо вам человеческое, за реальную помощь, а не так как дилетанты некоторые отвечают, почему вопрос задаёшь.
Я просто начинающий и всех тонкостей платформы .NET не знаю. Но буду учить и разбираться.

Последний раз редактировалось Fil_1990; 30.09.2015 в 17:05.
Fil_1990 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает вывод результат проверки теста. Utyf Помощь студентам 0 05.05.2013 14:55
C++ при написание слова вывод строчки. olegass Помощь студентам 0 12.02.2013 01:22
3 условия проверки. Оптимизация. artemavd Общие вопросы Delphi 15 22.12.2011 13:40
вывод в файл Dimarik Общие вопросы C/C++ 20 21.03.2011 19:40