static void Main(string[] args) { var stopwatch = new Stopwatch(); stopwatch.Start(); var events = new LogFileAnalyzeEvents(); var filecount = 0; var line = 0; events.OnFileLoaded += (_, e) => { Console.Write("{0}:", e.LogFile.Path); filecount++; Console.Title = filecount.ToString(); line = 0; }; events.OnAnalyzing += (_, e) => { line++; }; events.OnError += (_, e) => { Console.WriteLine(e.Exception.ToString()); }; events.OnCompleted += (_, e) => { Console.WriteLine("{0}行", line); }; KCVDBLogFile.AnalyzeAllSevenZipArchives(@"ちんちん.7z", events); stopwatch.Stop(); Console.WriteLine(stopwatch.Elapsed); }
static void Main(string[] args) { //------ パラメーター設定 var files = Directory.GetFiles(@"Enter your log-file directory"); int id = 155; //U-511 431 ターゲットのID int[] sameids = new int[] { 155, 403 }; //同一とみなす艦のID string shipname = "伊401"; string date = "2016/05/03"; //------------------------- //--同一艦 //new int[] { 431, 334, 436 };//U-511 431 //new int[] { 155, 403 };//伊401 155 //new int[] { 421, 330 };//秋月 421 //new int[] { 422, 346 };//照月 421 var totalsummary = new DropSummary(); int cnt = 1; Console.Title = "Started : " + DateTime.Now; Parallel.ForEach(files, new ParallelOptions { MaxDegreeOfParallelism = 2 }, f => { Console.WriteLine("Analyzing {0} / {1}", cnt, files.Length); cnt++; var ext = Path.GetExtension(f); if (ext != ".gz" && ext != ".log") { return; } var fullline = KCVDBLogFile.ParseAllLines(f); var analyzer = new Analyzer(fullline); //解析 analyzer.Analyze(id, sameids); //テーブルのマージ if (analyzer.Summary != null) { lock (lockObject) totalsummary = totalsummary.Merge(analyzer.Summary); } }); //結果表示用 StringBuilder sb = new StringBuilder(); sb.AppendFormat("ID = {0} {1}({2})", id, shipname, date).AppendLine(); foreach (var d in totalsummary.OrderBy(x => x.Key.GetHashCode())) { //if (d.Value.GetDropRatio(id) == 0.0) continue; var prob = d.Value.GetDropRatio(id); var num = d.Value.GetDropNum(id); var ci95 = Statics.ConfidenceIntervalBinomial(prob, d.Value.TotalNum); sb.Append(d.Key.GetDisplayString()); sb.Append("\t"); sb.Append(ci95.Lower.ToString("P2")); sb.Append("\t"); sb.Append(prob.ToString("P2")); sb.Append("\t"); sb.Append(ci95.Upper.ToString("P2")); sb.Append("\t"); sb.Append(num); sb.Append("\t"); sb.Append(d.Value.TotalNum); sb.AppendLine(); } Console.WriteLine(sb.ToString()); File.WriteAllText(id + "_" + date.Replace("/", "") + ".txt", sb.ToString()); }