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

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

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

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

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

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

У меня есть массив(текстовый файл) из 1000 строк, разбитый запятыми, вот пример строк :

Код:
#,LM,Jam ID,Date Occurred,Time Jammed,Rc,Rt,Cl,Jam Text
001,03,043,04/07/15 16:02,00:00:25,00,00,00,Indexer #1 shot pin state is unknown
002,02,030,09/24/15 16:39,00:00:04,00,00,01,ATT unable to detect tray at Gripper
003,01,044,09/24/15 16:38,00:00:25,00,00,01,Main tray is hanging on guides or stuck in gripper.
004,01,044,09/24/15 16:36,00:01:51,00,01,00,Main tray is hanging on guides or stuck in gripper.
005,02,030,09/24/15 15:11,00:00:04,00,00,01,ATT unable to detect tray at Gripper
006,01,044,09/24/15 15:10,00:00:27,00,01,00,Main tray is hanging on guides or stuck in gripper.
007,01,044,09/24/15 15:10,00:00:21,00,01,00,Main tray is hanging on guides or stuck in gripper.
008,02,030,09/21/15 15:17,00:00:19,00,00,01,ATT unable to detect tray at Gripper
009,01,045,09/21/15 15:15,00:01:32,00,01,00,Aux tray is hanging on guides or stuck in gripper.
010,01,045,09/21/15 15:15,00:00:17,00,01,00,Aux tray is hanging on guides or stuck in gripper.
011,04,030,09/18/15 19:28,00:00:55,01,02,00,Missing sort device(s) on sort boat. B1
012,05,029,09/18/15 19:24,00:01:39,06,06,01,TS Picker missing parts:Ck #1 A1
013,05,016,09/18/15 19:21,00:01:12,00,01,00,Picker detects parts stuck in nests:Ck #1 A1
014,05,016,09/18/15 19:20,00:00:23,00,01,00,Picker detects parts stuck in nests:Ck #1 A1
015,05,016,09/18/15 19:17,00:01:07,02,03,00,Picker detects parts stuck in nests:Ck #1 A1
016,05,016,09/18/15 19:15,00:00:17,00,01,00,Picker detects parts stuck in nests:Ck #1 A1
017,05,029,09/18/15 01:52,00:00:18,00,01,00,TS Picker missing parts:Ck #1 A1
018,05,029,09/17/15 17:09,00:00:05,00,01,00,TS Picker missing parts:Ck #1 A1
019,05,029,09/17/15 17:05,00:00:06,00,01,00,TS Picker missing parts:Ck #1 A1
020,05,029,09/17/15 16:35,00:00:07,00,01,00,TS Picker missing parts:Ck #1 A1
021,05,029,09/17/15 15:37,00:00:08,00,01,00,TS Picker missing parts:Ck #1 A1
022,02,030,09/17/15 15:22,00:00:56,01,01,01,ATT unable to detect tray at Gripper
023,05,029,09/17/15 12:17,02:29:47,01,02,00,TS Picker missing parts:Ck #1 A1
024,02,016,09/17/15 12:25,00:02:15,02,03,00,ATT unable to open the Gripper
025,05,029,09/17/15 12:11,00:00:24,00,01,00,TS Picker missing parts:Ck #1 A1
026,05,029,09/17/15 09:50,00:00:06,00,01,00,TS Picker missing parts:Ck #1 A1
027,05,029,09/17/15 09:49,00:00:10,00,01,00,TS Picker missing parts:Ck #1 A1
028,05,015,09/17/15 09:48,00:00:04,00,01,00,Picker can't detect all parts:Ck #1 A1
029,05,015,09/17/15 09:47,00:00:05,00,01,00,Picker can't detect all parts:Ck #1 A1
Я написал LINQ запрос к нему, который считает общее время,которое складывается из поля(Time Jammed) для ошибок(позиция Jam ID), но загвоздка в том , что для узлов всего их 6 (позиция LM), встречаются одинаковые по номеру ошибки. Как сгруппировать так чтобы он выдавал информацию номер узла номер ошибки общее время на ошибку ????
Вот мой LINQ запрос
Код:
var error = (from line in readText
                         let a = line.Split(',')
                         where a.Length >= 5 && Regex.IsMatch(a[4], @"\d{2}:\d{2}:\d{2}")
                         let Num = a[2]
                         let timeAttr = a[4].Split(':')
                         let timeUsage = TimeSpan.FromHours(int.Parse(timeAttr[0])) + TimeSpan.FromMinutes(int.Parse(timeAttr[1])) 
                                     + TimeSpan.FromSeconds(int.Parse(timeAttr[2]))
                         where timeUsage <= TimeSpan.FromHours(2)
                         select new {  Num, timeUsage } into Uzel
                         group Uzel by   Uzel.Num  into g
                         select new { Num = g.Key, TotalTime = new TimeSpan(g.Sum(arg => arg.timeUsage.Ticks)), 
                                 AverageTime = new TimeSpan((long)g.Average(arg => arg.timeUsage.Ticks)) }
                  );
В таком виде
Код:
На узле 01 ошибка 001 время 00:00:00 в общем какие встречаются на узле и время для них только на данном узле и так для 2 3 и т.д узла
           ошибка 002 время 00:02:00
           ошибка 003 время 00:40:00

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобраться с Inc Pearl777 Общие вопросы Delphi 4 23.05.2014 22:58
Не могу разобраться в сортировке естественным слиянием (Нафаня) Помощь студентам 2 04.05.2013 12:44
Не могу разобраться в быстрой сортировке на Delphi OverTeam Помощь студентам 1 13.04.2012 15:04
Не могу понять где ошибка при сортировке строк!? Dema91 Помощь студентам 6 15.04.2010 20:38
Не могу понять где ошибка при сортировке строки!? Dema91 Помощь студентам 1 14.04.2010 20:11