public void XmlCreateMouduleRecList() // SampleModule의 녹화기록을 xml에 저장 { try { XmlDocument doc = new XmlDocument(); XmlElement rec_xmllist = doc.CreateElement("Root"); // root 요소 XmlElement winSize = doc.CreateElement("WindowSize"); // 윈도우 해상도를 저장할 요소 생성 winSize.InnerText = (SystemParameters.MaximizedPrimaryScreenWidth - 16) + "#" + (SystemParameters.MaximizedPrimaryScreenHeight + 24); // 윈도우 해상도 저장 rec_xmllist.AppendChild(winSize); // 메인 요소에 winsSizw요소를 추가 // ====================================================================================== // 초기메모 패킷을 로그에 저장 XmlElement FirstMemo = doc.CreateElement("InitMemo"); rec_xmllist.AppendChild(FirstMemo); foreach (var item in Data.Instance.initmemo) { InitMemo memo = (InitMemo)item; XmlElement xRow = doc.CreateElement("Row"); XmlElement col1 = doc.CreateElement("col1"); col1.InnerText = memo.Col1; XmlElement col2 = doc.CreateElement("col2"); col2.InnerText = memo.Col2; xRow.AppendChild(col1); xRow.AppendChild(col2); FirstMemo.AppendChild(xRow); } XmlElement Log; for (int i = 0; i < dt_class.ModRec_list.Count; i++) { Log = doc.CreateElement("L" + (i).ToString()); // 녹화한 숫자의 끝까지 XML에 요소를 추가하여 저장한다. Log.InnerText = Data.Instance.ModRec_list[i]; // log라는 Xml요소에 녹화 데이터를 추가 rec_xmllist.AppendChild(Log); // Xml 요소를 LogList요소에 추가 } doc.AppendChild(rec_xmllist); // Document에 root요소를 추가 doc.Save(module_savename); // 인덱스에서 지정한 파일 경로 + 파일 이름으로 저장 dt_class.ModRec_list.Clear(); // xml 저장 후 리스트 비워주기. } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }
public void XmlCreateRecordList(string filepath) // 레코드 리스트에 있는 데이터를 Xml에 저장 { try { XmlDocument doc = new XmlDocument(); XmlElement rec_xmllist = doc.CreateElement("Root"); // root 요소 XmlElement winSize = doc.CreateElement("WindowSize"); // 윈도우 해상도를 저장할 요소 생성 winSize.InnerText = (SystemParameters.MaximizedPrimaryScreenWidth - 16) + "#" + (SystemParameters.MaximizedPrimaryScreenHeight + 24); // 윈도우 해상도 저장 rec_xmllist.AppendChild(winSize); // 메인 요소에 winsSizw요소를 추가 // ====================================================================================== // 초기메모 패킷을 로그에 저장 XmlElement FirstMemo = doc.CreateElement("InitMemo"); rec_xmllist.AppendChild(FirstMemo); foreach (var item in Data.Instance.initmemo) { InitMemo memo = (InitMemo)item; XmlElement xRow = doc.CreateElement("Row"); XmlElement col1 = doc.CreateElement("col1"); col1.InnerText = memo.Col1; XmlElement col2 = doc.CreateElement("col2"); col2.InnerText = memo.Col2; xRow.AppendChild(col1); xRow.AppendChild(col2); FirstMemo.AppendChild(xRow); } XmlElement DBSetting = doc.CreateElement("InitDBSetting"); rec_xmllist.AppendChild(DBSetting); XmlElement ClientID = doc.CreateElement("ClientID"); ClientID.InnerText = Data.Instance.myId; DBSetting.AppendChild(ClientID); XmlElement Today = doc.CreateElement("Today"); Today.InnerText = Data.Instance.Rec_Starttime; DBSetting.AppendChild(Today); XmlElement Comment = doc.CreateElement("Comment"); Comment.InnerText = Data.Instance.Rec_Comment; DBSetting.AppendChild(Comment); XmlElement FileName = doc.CreateElement("FileName"); FileName.InnerText = Data.Instance.ftp_myfilename; DBSetting.AppendChild(FileName); XmlElement FirstImage = doc.CreateElement("InitImg"); rec_xmllist.AppendChild(FirstImage); // ====================================================================================== // 일시정지 패킷을 로그에 저장 XmlElement Pause = doc.CreateElement("Pause"); // Pause를 추가하기 위한 Pause 요소를 생성 XmlElement Log; // ====================================================================================== // 로그 저장시 마우스최적화 옵션이 켜져있을 경우 //if (RecordSetting.Instance.is_mouseoptimize == true) // this.MouseOptimize(); // 현재 녹화된 데이터까지 xml 문서에 저장 for (int i = 0; i < dt_class.Rec_list.Count; i++) { if (dt_class.Rec_list[i].Contains("Pause")) { if (dt_class.Rec_list[i - 1] == "LControlKey") { dt_class.Rec_list.RemoveAt(i - 1); } Pause = doc.CreateElement("Pause" + pause_count.ToString()); rec_xmllist.AppendChild(Pause); pause_count++; } #region 메모 다이얼로그 창이 열렸을 때의 이벤트 else if (dt_class.Rec_list[i].Contains("M&")) // 일시정지 패킷 아래에 MemoData를 로그에 저장 { XmlElement MemoData = doc.CreateElement("MemoData"); // Memo를 추가하기 위한 Memo 요소를 생성 MemoData.InnerText = Data.Instance.Rec_list[i]; Pause.AppendChild(MemoData); } else if (dt_class.Rec_list[i].Contains("↔")) // 일시정지 패킷 아래에 MemoLocation를 로그에 저장 { XmlElement MemoLocation = doc.CreateElement("MemoLocation"); // Memo를 추가하기 위한 MemoLocation 요소를 생성 MemoLocation.InnerText = Data.Instance.Rec_list[i]; Pause.AppendChild(MemoLocation); } #endregion else if (dt_class.Rec_list[i].Contains("Image")) // 일시정지 패킷 아래에 Image를 로그에 저장 { XmlElement Image = doc.CreateElement("Image" + image_count.ToString()); Image.InnerText = Data.Instance.Rec_list[i].Replace("Image&", ""); Pause.AppendChild(Image); image_count++; } #region 일 불러오기 같은 다이얼로그 창이 열렸을때의 이벤트 else if (dt_class.Rec_list[i].Contains("D&")) { XmlElement DialogData = doc.CreateElement("DialogData"); DialogData.InnerText = Data.Instance.Rec_list[i]; Pause.AppendChild(DialogData); } else if (dt_class.Rec_list[i].Contains("♤")) { XmlElement DialogLocation = doc.CreateElement("DialogLocation"); DialogLocation.InnerText = Data.Instance.Rec_list[i]; Pause.AppendChild(DialogLocation); } #endregion else if (dt_class.Rec_list[i].Contains("InitImg")) // 초기이미지 패킷 아래에 InitImage를 로그에 저장 { XmlElement InitImg = doc.CreateElement("InitImg"); InitImg.InnerText = Data.Instance.Rec_list[i].Replace("InitImg&", ""); FirstImage.AppendChild(InitImg); } else { Log = doc.CreateElement("L" + (i).ToString()); // 녹화한 숫자의 끝까지 XML에 요소를 추가하여 저장한다. Log.InnerText = Data.Instance.Rec_list[i]; // log라는 Xml요소에 녹화 데이터를 추가 rec_xmllist.AppendChild(Log); // Xml 요소를 LogList요소에 추가 } } doc.AppendChild(rec_xmllist); // Document에 root요소를 추가 if (filepath == "") { return; } doc.Save(filepath); // 인덱스에서 지정한 파일 경로 + 파일 이름으로 저장 } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }