خب دیروز که داشتم پست های بالا رو میدادم مبنای کارم این بود که در آخر جمع بندی کنیم و تمامی تنظیمات رو در یک فایل واحد ذخیره سازی کنیم اما چون دیروز وقت نداشتم ، امروز اینکار را انجام میدهیم :
برای ذخیره سازی تنظیمات در یک فایل واحد از کدهای زیر استفاده نمایید :
[CSHARP]
Pashmak.XmlDoc = new XmlDocument();
XmlElement XRootA = Pashmak.XmlDoc.CreateElement("Pashmak");
XmlElement XRootB = Pashmak.XmlDoc.CreateElement("Softafzar");
{
XmlElement XItems = Pashmak.XmlDoc.CreateElement("Items");
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
XmlElement XItem = Pashmak.XmlDoc.CreateElement("Item");
XmlElement XCLM1 = Pashmak.XmlDoc.CreateElement("Column1");
XmlElement XCLM2 = Pashmak.XmlDoc.CreateElement("Column2");
XCLM1.InnerText = dataGridView1.Rows[i].Cells[0].Value.ToString();
XCLM2.InnerText = dataGridView1.Rows[i].Cells[1].Value.ToString();
XItem.AppendChild(XCLM1);
XItem.AppendChild(XCLM2);
XItems.AppendChild(XItem);
}
XRootB.AppendChild(XItems);
XRootA.AppendChild(XRootB);
}
XmlElement listBoxP = Pashmak.XmlDoc.CreateElement("ListBoxes");
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
XmlElement Item = Pashmak.XmlDoc.CreateElement("Item");
Item.InnerText = listBox1.Items[i].ToString();
listBoxP.AppendChild(Item);
}
XRootA.AppendChild(listBoxP);
}
XmlElement XRootC = Pashmak.XmlDoc.CreateElement("TextBoxes");
{
XmlElement txtbox1 = Pashmak.XmlDoc.CreateElement("textBox1");
txtbox1.InnerText = textBox1.Text;
XmlElement txtbox2 = Pashmak.XmlDoc.CreateElement("textBox2");
txtbox2.InnerText = textBox2.Text;
XRootC.AppendChild(txtbox1);
XRootC.AppendChild(txtbox2);
XRootA.AppendChild(XRootC);
}
XmlElement XRootD = Pashmak.XmlDoc.CreateElement("RadioButton");
{
XmlElement radiobtn1 = Pashmak.XmlDoc.CreateElement("radioButton1");
radiobtn1.InnerText = radioButton1.Checked.ToString();
XmlElement radiobtn2 = Pashmak.XmlDoc.CreateElement("radioButton2");
radiobtn2.InnerText = radioButton2.Checked.ToString();
XRootD.AppendChild(radiobtn1);
XRootD.AppendChild(radiobtn2);
XRootA.AppendChild(XRootD);
}
XmlElement XRootE = Pashmak.XmlDoc.CreateElement("CheckBoxes");
{
XmlElement chbox1 = Pashmak.XmlDoc.CreateElement("checkBox1");
chbox1.InnerText = checkBox1.Checked.ToString();
XmlElement chbox2 = Pashmak.XmlDoc.CreateElement("checkBox2");
chbox2.InnerText = checkBox2.Checked.ToString();
XRootE.AppendChild(chbox1);
XRootE.AppendChild(chbox2);
XRootA.AppendChild(XRootE);
}
Pashmak.XmlDoc.AppendChild(XRootA);
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "SoftAfzar Database (*.db)|*.db";
Random randomize = new Random();
sd.FileName = "SoftAfzar Database" + randomize.Next();
string filePath = "";
if (sd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
StreamWriter save = new StreamWriter(sd.FileName);
save.Write(Pashmak.XmlDoc.InnerXml);
filePath = sd.FileName;
label1.Text = "Database Saved on\n" + filePath;
save.Close();
}
[/CSHARP]
همچنین برای بازیابی آنها ، از کد زیر استفاده کنید :
[CSHARP]
OpenFileDialog od = new OpenFileDialog();
od.Filter = "SoftAfzar Database (.db)|.db";
od.FileName = "SoftAfzar Database.db";
if (od.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
StreamReader loaddb = new StreamReader(od.FileName);
string data = loaddb.ReadToEnd();
loaddb.Close();
Pashmak.XmlDoc = new XmlDocument();
try
{
Pashmak.XmlDoc.LoadXml(data);
}
catch
{
return;
}
if (Pashmak.XmlDoc == null || Pashmak.XmlDoc.InnerXml == "")
return;
XmlNode XmlRoot = Pashmak.XmlDoc.GetElementsByTagName("Pashmak")[0];
XmlNodeList XnL = Pashmak.XmlDoc.ChildNodes;
for (int i = 0; i < XmlRoot.ChildNodes.Count; i++)
{
XmlNode XmlRChild = XmlRoot.ChildNodes[i];
switch (XmlRChild.Name)
{
case "Softafzar":
if (XmlRChild.SelectSingleNode("//Pashmak/Softafzar/Items") != null &&
XmlRChild.SelectSingleNode("//Pashmak/Softafzar/Items/Item") != null)
{
XmlNodeList ItemsList = XmlRChild.SelectNodes("//Pashmak/Softafzar/Items/Item");
for (int j = 0; j < ItemsList.Count; j++)
{
string A = "", B = "";
for (int t = 0; t < ItemsList[j].ChildNodes.Count; t++)
{
if (ItemsList[j].ChildNodes[t].Name == "Column1")
A = ItemsList[j].ChildNodes[t].InnerText;
else if (ItemsList[j].ChildNodes[t].Name == "Column2")
B = ItemsList[j].ChildNodes[t].InnerText;
}
dataGridView1.Rows.Add(A, B);
}
}
break;
case "ListBoxes":
if (XmlRChild.SelectSingleNode("//Pashmak/ListBoxes/Item") != null)
{
XmlNodeList ItemsList = XmlRChild.SelectNodes("//Pashmak/ListBoxes/Item");
for (int j = 0; j < ItemsList.Count; j++)
{
string A = "";
for (int t = 0; t < ItemsList[j].ChildNodes.Count; t++)
{
A = ItemsList[j].ChildNodes[t].InnerText;
}
listBox1.Items.Add(A);
}
}
break;
case "TextBoxes":
if (XmlRChild.SelectSingleNode("//Pashmak/TextBoxes") != null)
{
XmlNodeList ItemsList = XmlRChild.ChildNodes;
for (int j = 0; j < ItemsList.Count; j++)
{
switch (ItemsList[j].Name)
{
case "textBox1":
textBox1.Text = ItemsList[j].InnerText;
break;
case "textBox2":
textBox2.Text = ItemsList[j].InnerText;
break;
}
}
}
break;
case "RadioButton":
if (XmlRChild.SelectSingleNode("//Pashmak/RadioButton") != null)
{
XmlNodeList ItemsList = XmlRChild.ChildNodes;
for (int j = 0; j < ItemsList.Count; j++)
{
switch (ItemsList[j].Name)
{
case "radioButton1":
radioButton1.Checked = bool.Parse(ItemsList[j].InnerText);
break;
case "radioButton2":
radioButton2.Checked = bool.Parse(ItemsList[j].InnerText);
break;
}
}
}
break;
case "CheckBoxes":
if (XmlRChild.SelectSingleNode("//Pashmak/CheckBoxes") != null)
{
XmlNodeList ItemsList = XmlRChild.ChildNodes;
for (int j = 0; j < ItemsList.Count; j++)
{
switch (ItemsList[j].Name)
{
case "checkBox1":
checkBox1.Checked = bool.Parse(ItemsList[j].InnerText);
break;
case "checkBox2":
checkBox2.Checked = bool.Parse(ItemsList[j].InnerText);
break;
}
}
}
break;
}
}
}
[/CSHARP]
منبع : سافت افزار
کدنویس : رامتین جوکار
کپی برداری از کدهای بالا فقط با ذکر نام سافت افزار قانونی و مجاز میباشد.