/// <summary> /// 読み込み処理 /// </summary> /// <param name="clListView">モーションリストビュー</param> /// <param name="clFilePath">ファイルパス</param> public static void Load(ListView clListView, string clFilePath) { ClsSystem.mMotionSelectKey = -1; XmlDocument clXmlDoc = new XmlDocument(); try { //以下、xmlファイル読み込み処理 clXmlDoc.Load(clFilePath); //以下、プロジェクトファイル読み込み処理 IEnumerator iEnum = clXmlDoc.DocumentElement.GetEnumerator(); while (iEnum.MoveNext()) { XmlElement clXmlElem = iEnum.Current as XmlElement; if ("Header".Equals(clXmlElem.Name)) { if (!"hap".Equals(clXmlElem.InnerText)) { throw new Exception("this is not hanim project file."); } ClsSystem.mHeader = clXmlElem.InnerText; continue; } if ("Ver".Equals(clXmlElem.Name)) { Match clMatch = Regex.Match(clXmlElem.InnerText, "^\\d+$"); if (!clMatch.Success) { throw new Exception("this is not allowed version."); } ClsSystem.mVer = Convert.ToInt32(clXmlElem.InnerText); continue; } if ("Image".Equals(clXmlElem.Name)) { ClsDatImage clDatImage = new ClsDatImage(); clDatImage.Load(clXmlElem); ClsSystem.mDicImage.Add(clDatImage.mID, clDatImage); continue; } if ("Motion".Equals(clXmlElem.Name)) { ClsDatMotion clDatMotion = new ClsDatMotion(0, ""); clDatMotion.Load(clXmlElem); ListViewItem clListViewItem = new ListViewItem(clDatMotion.mName, 2); clListView.Items.Add(clListViewItem); clListViewItem.Tag = ClsSystem.mDicMotion.Count; clDatMotion.mItemHashCode = clListViewItem.GetHashCode(); clDatMotion.Restore(); //モーションの親子関連付け再構築処理 clDatMotion.RefreshLineNo(); //行番号などを設定する処理 ClsSystem.mDicMotion.Add(clDatMotion.mID, clDatMotion); continue; } throw new Exception("this is abnormality format."); } //以下、デフォルトで選択しているモーションを設定する処理 if (clListView.Items.Count >= 1) { ClsSystem.mMotionSelectKey = clListView.Items[0].GetHashCode(); } } catch (Exception err) { MessageBox.Show(err.Message); } }