示例#1
0
        static void Main(string[] args)
        {
            var parser = new SubtitlesParser.Classes.Parsers.SubParser();

            var allFiles = BrowseTestSubtitlesFiles();

            foreach (var file in allFiles)
            {
                var fileName = Path.GetFileName(file);
                using (var fileStream = File.OpenRead(file))
                {
                    try
                    {
                        SubtitlesFormat format = parser.GetFormat(fileName);

                        List <SubtitleItem> items = parser.ParseStream(fileStream, Encoding.UTF8, format);

                        if (items.Any())
                        {
                            //Console.WriteLine("Parsing of file {0}: SUCCESS ({1} items - {2}% corrupted)",
                            //    fileName, items.Count, (items.Count(it => it.StartTime <= 0 || it.EndTime <= 0) * 100)/ items.Count);

                            foreach (var item in items)
                            {
                                //Console.WriteLine(item);
                            }

                            var duplicates =
                                items.GroupBy(it => new { it.StartTime, it.EndTime }).Where(grp => grp.Count() > 1);

                            //Console.WriteLine("{0} duplicate items", duplicates.Count());
                            //Console.WriteLine("----------------");
                        }
                        else
                        {
                            throw new ArgumentException("Not items found!");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Parsing of file {0}: FAILURE\n{1}", fileName, ex);
                    }
                }
                Console.WriteLine("----------------------");
            }

            Console.ReadLine();
        }