private void 開くOToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.InitialDirectory = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log"); if (openFileDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { try { FF14LogParser actionReport = new FF14LogParser(); actionReport.Read(openFileDialog1.FileName); bindingSource1.DataSource = actionReport.ds; bindingSource1.DataMember = "Anaylzed"; } catch (Exception _e) { MessageBox.Show(_e.Message); } } }
private void 開くOToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.InitialDirectory = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log"); if (openFileDialog1.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { try { FF14LogParser _ar = new FF14LogParser(); System.Threading.ThreadStart ts = () => { _ar.Read(openFileDialog1.FileName); }; System.Threading.Thread th = new System.Threading.Thread(ts); th.Start(); int p = 0; SetStatus(String.Format("ファイルを読み込んでいます・・・{0} ", Path.GetFileName(openFileDialog1.FileName))); Application.DoEvents(); System.Threading.Thread.Sleep(100); while (th.IsAlive) { SetProgress(Math.Min(100, 10 * p++), true); System.Diagnostics.Debug.WriteLine(actionReport.Progress); System.Threading.Thread.Sleep(100); Application.DoEvents(); } SetProgress(0, false); SetStatus(String.Format("ファイルを読み込んでいます・・・ {0} 完了", Path.GetFileName(openFileDialog1.FileName))); if (MessageBox.Show("読み込んだデータの解析を行いますか?", "再解析", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { FF14LogParser ar = new FF14LogParser(); ts = () => { foreach (FFXIVLogDataSet.AnaylzedRow arow in _ar.ds.Anaylzed) { FFXIVLog log = FFXIVLog.CreateLog(arow.TotalSeconds, arow.LogType, arow.ActionType, arow.Body); ar.Add(log); } }; th = new System.Threading.Thread(ts); th.Start(); while (th.IsAlive) { SetProgress(Math.Min(100, 100 * ar.ds.Anaylzed.Count / _ar.ds.Anaylzed.Count), true); SetStatus(String.Format("解析しています・・・{0}/{1}", ar.ds.Anaylzed.Count, _ar.ds.Anaylzed.Count)); Application.DoEvents(); System.Threading.Thread.Sleep(500); } SetStatus(String.Format("解析しています・・・{0}/{1}", ar.ds.Anaylzed.Count, _ar.ds.Anaylzed.Count)); SetProgress(0, false); Application.DoEvents(); actionReport = ar; } else { actionReport = _ar; } SetStatus("表示範囲指定ウィンドウを開いています・・・"); Application.DoEvents(); データ範囲指定ToolStripMenuItem_Click(this, null); } catch (Exception _e) { MessageBox.Show(_e.Message); actionReport = _processActionReport; } } }