ذخیره و بازیابی تمامی اطلاعات در XML سی پلاس پلاس دات نت
#1
Note 
درود به کاربران ، مدیران و همراهان گرامی سافت افزار،

در اینجا قرار است که با یاری همدیگر ، کدهای ذخیره ی اطلاعات در فایل XML را در زبان سی پلاس پلاس بر پایه دات نت آموزش دهیم.

چنانچه سوالی برای شما دوستان گرامی پیش آمد ، خواهشمندیم در تاپیک جداگانه آنرا بپرسید.

سپاس گذارم.

usingـه مورد نیاز در کل این پروژه ها ،این ها میباشند :

[CPP]
using namespace System::Xml

using namespace System::IO;
[/CPP]

در قسمت Generalـه فرمتان کد زیر را بنویسید :


[CPP]
public: XmlDocument^ XmlDoc;
[/CPP]


منبع : سافت افزار

کدنویس : رامتین جوکار

کپی برداری از کدهای پایین فقط با ذکر نام سافت افزار قانونی و مجاز میباشد.

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#2
Note 
برای ذخیره ی TextBox ها کد زیر را به کار ببرید :

[CPP]
XmlDoc = gcnew XmlDocument();

XmlElement^ XRootA = XmlDoc->CreateElement("TextBoxes");
XmlElement^ txtbox1 = XmlDoc->CreateElement("textBox1");
txtbox1->InnerText = textBox1->Text;

XmlElement^ txtbox2 = XmlDoc->CreateElement("textBox2");
txtbox2->InnerText = textBox2->Text;

XRootA->AppendChild(txtbox1);
XRootA->AppendChild(txtbox2);

XmlDoc->AppendChild(XRootA);

SaveFileDialog^ sd = gcnew SaveFileDialog();
sd->Filter = "SoftAfzar Database (*.db)|*.db";
Random^ randomize = gcnew Random();
sd->FileName = "SoftAfzar Database" + randomize->Next();
if (sd->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamWriter^ save = gcnew StreamWriter(sd->FileName);
save->Write(XmlDoc->InnerXml);
save->Close();
}
[/CPP]

و همچنین برای بازیابی اطلاعات آن از کد زیر استفاده نمایید :

[CPP]
OpenFileDialog^ od = gcnew OpenFileDialog();
od->Filter = "SoftAfzar Database (*.db)|*.db";
od->FileName = "SoftAfzar Database.db";
if (od->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamReader^ loaddb = gcnew StreamReader(od->FileName);
String^ data = loaddb->ReadToEnd();
loaddb->Close();
XmlDoc = gcnew XmlDocument();
try
{
XmlDoc->LoadXml(data);
}
catch(Exception^ ex)
{
return;
}
XmlNodeList^ XnL = XmlDoc->ChildNodes;
for(int i = 0; i < XmlDoc->ChildNodes->Count;i++)
{
if(XnL[i]->Name == "TextBoxes")
{
XmlNodeList^ XnL2 = XnL[i]->ChildNodes;
for (int j = 0; j < XnL2->Count; j++)
{
if(XnL2[j]->Name == "textBox1")
textBox1->Text = XnL2[j]->InnerText;

else if(XnL2[j]->Name == "textBox2")
textBox2->Text = XnL2[j]->InnerText;
}
}
}
}
[/CPP]

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#3
Note 
برای ذخیره ی RadioButton ها کد زیر را به کار ببرید :

[CPP]
XmlDoc = gcnew XmlDocument();
XmlElement^ XRootA = XmlDoc->CreateElement("RadioButton");

XmlElement^ radiobtn1 = XmlDoc->CreateElement("radioButton1");
radiobtn1->InnerText = radioButton1->Checked.ToString();

XmlElement^ radiobtn2 = XmlDoc->CreateElement("radioButton2");
radiobtn2->InnerText = radioButton2->Checked.ToString();

XRootA->AppendChild(radiobtn1);
XRootA->AppendChild(radiobtn2);

XmlDoc->AppendChild(XRootA);

SaveFileDialog^ sd = gcnew SaveFileDialog();
sd->Filter = "SoftAfzar Database (*.db)|*.db";
Random^ randomize = gcnew Random();
sd->FileName = "SoftAfzar Database" + randomize->Next();
if (sd->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamWriter^ save = gcnew StreamWriter(sd->FileName);
save->Write(XmlDoc->InnerXml);
save->Close();
}
[/CPP]

و همچنین برای بازیابی اطلاعات آن از کد زیر استفاده نمایید :

[CPP]
OpenFileDialog^ od = gcnew OpenFileDialog();
od->Filter = "SoftAfzar Database (*.db)|*.db";
od->FileName = "SoftAfzar Database.db";
if (od->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamReader^ loaddb = gcnew StreamReader(od->FileName);
String^ data = loaddb->ReadToEnd();
loaddb->Close();
XmlDoc = gcnew XmlDocument();
try
{
XmlDoc->LoadXml(data);
}
catch(Exception^ ex)
{
return;
}
XmlNodeList^ XnL = XmlDoc->ChildNodes;
for (int i = 0; i < XmlDoc->ChildNodes->Count; i++)
{
if(XnL[i]->Name == "RadioButton")
{
XmlNodeList^ XnL2 = XnL[i]->ChildNodes;
for (int j = 0; j < XnL2->Count; j++)
{
if(XnL2[j]->Name == "radioButton1")
radioButton1->Checked = bool:Tonguearse(XnL2[j]->InnerText);

else if(XnL2[j]->Name == "radioButton2")
radioButton2->Checked = bool:Tonguearse(XnL2[j]->InnerText);
}
}
}
}
[/CPP]

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#4
Note 
برای ذخیره ی CheckBoxها کد زیر را به کار ببرید :

[CPP]
XmlDoc = gcnew XmlDocument();
XmlElement^ XRootA = XmlDoc->CreateElement("CheckBoxes");

XmlElement^ chbox1 = XmlDoc->CreateElement("checkBox1");
chbox1->InnerText = checkBox1->Checked.ToString();

XmlElement^ chbox2 = XmlDoc->CreateElement("checkBox2");
chbox2->InnerText = checkBox2->Checked.ToString();

XRootA->AppendChild(chbox1);
XRootA->AppendChild(chbox2);

XmlDoc->AppendChild(XRootA);

SaveFileDialog^ sd = gcnew SaveFileDialog();
sd->Filter = "SoftAfzar Database (*.db)|*.db";
Random^ randomize = gcnew Random();
sd->FileName = "SoftAfzar Database" + randomize->Next();
if (sd->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamWriter^ save = gcnew StreamWriter(sd->FileName);
save->Write(XmlDoc->InnerXml);
save->Close();
}
[/CPP]

و همچنین برای بازیابی اطلاعات آن از کد زیر استفاده نمایید :

[CPP]
OpenFileDialog^ od = gcnew OpenFileDialog();
od->Filter = "SoftAfzar Database (*.db)|*.db";
od->FileName = "SoftAfzar Database.db";
if (od->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamReader^ loaddb = gcnew StreamReader(od->FileName);
String^ data = loaddb->ReadToEnd();
loaddb->Close();
XmlDoc = gcnew XmlDocument();
try
{
XmlDoc->LoadXml(data);
}
catch(Exception^ ex)
{
return;
}
XmlNodeList^ XnL = XmlDoc->ChildNodes;
for (int i = 0; i < XmlDoc->ChildNodes->Count; i++)
{
if(XnL[i]->Name == "CheckBoxes")
{
XmlNodeList^ XnL2 = XnL[i]->ChildNodes;
for (int j = 0; j < XnL2->Count; j++)
{
if(XnL2[j]->Name == "checkBox1")
checkBox1->Checked = bool:Tonguearse(XnL2[j]->InnerText);

else if(XnL2[j]->Name == "checkBox2")
checkBox2->Checked = bool:Tonguearse(XnL2[j]->InnerText);
}
}
}
}
[/CPP]

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#5
Note 
برای ذخیره ی ListBoxها کد زیر را به کار ببرید :

[CPP]
XmlDoc = gcnew XmlDocument();
XmlElement^ listBoxP = XmlDoc->CreateElement("ListBoxes");
{
for (int i = 0; i < listBox1->Items->Count; i++)
{
XmlElement^ Item = XmlDoc->CreateElement("Item");
Item->InnerText = listBox1->Items[i]->ToString();
listBoxP->AppendChild(Item);
}
}
XmlDoc->AppendChild(listBoxP);

SaveFileDialog^ sd = gcnew SaveFileDialog();
sd->Filter = "SoftAfzar Database (*.db)|*.db";
Random^ randomize = gcnew Random();
sd->FileName = "SoftAfzar Database" + randomize->Next();
if (sd->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamWriter^ save = gcnew StreamWriter(sd->FileName);
save->Write(XmlDoc->InnerXml);
save->Close();
}
[/CPP]

و همچنین برای بازیابی اطلاعات آن از کد زیر استفاده نمایید :

[CPP]
OpenFileDialog^ od = gcnew OpenFileDialog();
od->Filter = "SoftAfzar Database (*.db)|*.db";
od->FileName = "SoftAfzar Database.db";
if (od->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamReader^ loaddb = gcnew StreamReader(od->FileName);
String^ data = loaddb->ReadToEnd();
loaddb->Close();
XmlDoc = gcnew XmlDocument();
try
{
XmlDoc->LoadXml(data);
}
catch(Exception^ ex)
{
return;
}
XmlNodeList^ XnL = XmlDoc->ChildNodes;
for (int i = 0; i < XmlDoc->ChildNodes->Count; i++)
{
if(XnL[i]->Name == "ListBoxes")
{
XmlNodeList^ XnL2 = XnL[i]->ChildNodes;
for (int j = 0; j < XnL2->Count; j++)
{
if(XnL2[j]->Name == "Item")
listBox1->Items->Add(XnL2[j]->InnerText);
}
}
}
}
[/CPP]

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#6
Note 
رای ذخیره ی DataGridView ها کد زیر را به کار ببرید :

[CPP]
XmlDoc = gcnew XmlDocument();
XmlElement^ XRootA = XmlDoc->CreateElement("Pashmak");
XmlElement^ XRootB = XmlDoc->CreateElement("Softafzar");
{
XmlElement^ XItems = XmlDoc->CreateElement("Items");
for (int i = 0; i < dataGridView1->Rows->Count - 1; i++)
{
XmlElement^ XItem = XmlDoc->CreateElement("Item");
XmlElement^ XCLM1 = XmlDoc->CreateElement("Column1");
XmlElement^ XCLM2 = 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);
}
XmlDoc->AppendChild(XRootA);
SaveFileDialog^ sd = gcnew SaveFileDialog();
sd->Filter = "SoftAfzar Database (*.db)|*.db";
Random^ randomize = gcnew Random();
sd->FileName = "SoftAfzar Database" + randomize->Next();
String^ filePath = "";
if (sd->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamWriter^ save = gcnew StreamWriter(sd->FileName);
save->Write(XmlDoc->InnerXml);
filePath = sd->FileName;
label1->Text = "Database Saved on\n" + filePath;
save->Close();
}
[/CPP]

و همچنین برای بازیابی اطلاعات آن از کد زیر استفاده نمایید :

[CPP]
OpenFileDialog^ od = gcnew OpenFileDialog();
od->Filter = "SoftAfzar Database (*.db)|*.db";
od->FileName = "SoftAfzar Database.db";
if (od->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamReader^ loaddb = gcnew StreamReader(od->FileName);
String^ data = loaddb->ReadToEnd();
loaddb->Close();
XmlDoc = gcnew XmlDocument();
try
{
XmlDoc->LoadXml(data);
}
catch(Exception^ ex)
{
return;
}
XmlNodeList^ XnL = XmlDoc->ChildNodes;
for (int i = 0; i < XmlDoc->ChildNodes->Count; i++)
{
if(XnL[i]->Name == "Pashmak")
{
XmlNodeList^ XnL2 = XnL[i]->ChildNodes;
for (int j = 0; j < XnL2->Count; j++)
{
if(XnL2[j]->Name == "Softafzar")
{
XmlNodeList^ XnL3 = XnL2[j]->ChildNodes;
for(int t = 0; t < XnL3->Count;t++)
{
if(XnL3[t]->Name == "Items")
{
XmlNodeList^ XnL4 = XnL3[t]->ChildNodes;
for(int b = 0; b < XnL4->Count;b++)
{
if(XnL4[t]->Name == "Item")
{
XmlNodeList^ XnL5 = XnL4[b]->ChildNodes;
String^ A = ""; String^ B = "";
for(int n = 0; n<XnL5->Count; n++)
{
if (XnL5[n]->Name == "Column1")
A = XnL5[n]->InnerText;
else if (XnL5[n]->Name == "Column2")
B = XnL5[n]->InnerText;
}
dataGridView1->Rows->Add(A,B);
}

}
}
}
}
}
}
}
}
[/CPP]

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
#7
Note 
برای ذخیره سازی تنظیمات در یک فایل واحد از کدهای زیر استفاده نمایید :

[CPP]
XmlDoc = gcnew XmlDocument();
XmlElement^ XRootA = XmlDoc->CreateElement("Pashmak");
XmlElement^ XRootB = XmlDoc->CreateElement("Softafzar");
{
XmlElement^ XItems = XmlDoc->CreateElement("Items");
for (int i = 0; i < dataGridView1->Rows->Count - 1; i++)
{
XmlElement^ XItem = XmlDoc->CreateElement("Item");
XmlElement^ XCLM1 = XmlDoc->CreateElement("Column1");
XmlElement^ XCLM2 = 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 = XmlDoc->CreateElement("ListBoxes");
{
for (int i = 0; i < listBox1->Items->Count; i++)
{
XmlElement^ Item = XmlDoc->CreateElement("Item");
Item->InnerText = listBox1->Items[i]->ToString();
listBoxP->AppendChild(Item);
}
XRootA->AppendChild(listBoxP);
}


XmlElement^ XRootC = XmlDoc->CreateElement("TextBoxes");
{
XmlElement^ txtbox1 = XmlDoc->CreateElement("textBox1");
txtbox1->InnerText = textBox1->Text;
XmlElement^ txtbox2 = XmlDoc->CreateElement("textBox2");
txtbox2->InnerText = textBox2->Text;

XRootC->AppendChild(txtbox1);
XRootC->AppendChild(txtbox2);
XRootA->AppendChild(XRootC);
}

XmlElement^ XRootD = XmlDoc->CreateElement("RadioButton");
{
XmlElement^ radiobtn1 = XmlDoc->CreateElement("radioButton1");
radiobtn1->InnerText = radioButton1->Checked.ToString();
XmlElement^ radiobtn2 = XmlDoc->CreateElement("radioButton2");
radiobtn2->InnerText = radioButton2->Checked.ToString();

XRootD->AppendChild(radiobtn1);
XRootD->AppendChild(radiobtn2);
XRootA->AppendChild(XRootD);
}

XmlElement^ XRootE = XmlDoc->CreateElement("CheckBoxes");
{
XmlElement^ chbox1 = XmlDoc->CreateElement("checkBox1");
chbox1->InnerText = checkBox1->Checked.ToString();
XmlElement^ chbox2 = XmlDoc->CreateElement("checkBox2");
chbox2->InnerText = checkBox2->Checked.ToString();

XRootE->AppendChild(chbox1);
XRootE->AppendChild(chbox2);
XRootA->AppendChild(XRootE);
}
XmlDoc->AppendChild(XRootA);
SaveFileDialog^ sd = gcnew SaveFileDialog();
sd->Filter = "SoftAfzar Database (*.db)|*.db";
Random^ randomize = gcnew Random();
sd->FileName = "SoftAfzar Database" + randomize->Next();
String^ filePath = "";
if (sd->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamWriter^ save = gcnew StreamWriter(sd->FileName);
save->Write(XmlDoc->InnerXml);
filePath = sd->FileName;
label1->Text = "Database Saved on\n" + filePath;
save->Close();
}
[/CPP]

همچنین برای بازیابی آنها ، از کد زیر استفاده کنید :

[CPP]
OpenFileDialog^ od = gcnew OpenFileDialog();
od->Filter = "SoftAfzar Database (*.db)|*.db";
od->FileName = "SoftAfzar Database.db";
if (od->ShowDialog() == System::Windows::Forms:Big GrinialogResult::OK)
{
StreamReader^ loaddb = gcnew StreamReader(od->FileName);
String^ data = loaddb->ReadToEnd();
loaddb->Close();
XmlDoc = gcnew XmlDocument();
try
{
XmlDoc->LoadXml(data);
}
catch(Exception^ ex)
{
return;
}
XmlNodeList^ XnL = XmlDoc->ChildNodes;
for (int i = 0; i < XmlDoc->ChildNodes->Count; i++)
{
if(XnL[i]->Name == "Pashmak")
{
XmlNodeList^ XnL2 = XnL[i]->ChildNodes;
for (int j = 0; j < XnL2->Count; j++)
{
if(XnL2[j]->Name == "Softafzar")
{
XmlNodeList^ XnL3 = XnL2[j]->ChildNodes;
for(int t = 0; t < XnL3->Count;t++)
{
if(XnL3[t]->Name == "Items")
{
XmlNodeList^ XnL4 = XnL3[t]->ChildNodes;
for(int b = 0; b < XnL4->Count;b++)
{
if(XnL4[t]->Name == "Item")
{
XmlNodeList^ XnL5 = XnL4[b]->ChildNodes;
String^ A = ""; String^ B = "";
for(int n = 0; n<XnL5->Count; n++)
{
if (XnL5[n]->Name == "Column1")
A = XnL5[n]->InnerText;
else if (XnL5[n]->Name == "Column2")
B = XnL5[n]->InnerText;
}
dataGridView1->Rows->Add(A,B);
}

}
}
}
}
else if(XnL2[j]->Name == "ListBoxes")
{
XmlNodeList^ XnL3 = XnL2[j]->ChildNodes;
for(int t = 0; t < XnL3->Count;t++)
{
if(XnL3[t]->Name == "Item")
listBox1->Items->Add(XnL3[t]->InnerText);

}
}
else if(XnL2[j]->Name == "TextBoxes")
{
XmlNodeList^ XnL3 = XnL2[j]->ChildNodes;
for(int t = 0; t < XnL3->Count;t++)
{
if(XnL3[t]->Name == "textBox1")
textBox1->Text = XnL3[t]->InnerText;
else if(XnL3[t]->Name == "textBox2")
textBox2->Text = XnL3[t]->InnerText;

}
}
else if(XnL2[j]->Name == "RadioButton")
{
XmlNodeList^ XnL3 = XnL2[j]->ChildNodes;
for(int t = 0; t < XnL3->Count;t++)
{
if(XnL3[t]->Name == "radioButton1")
radioButton1->Checked = bool:Tonguearse(XnL3[t]->InnerText);
else if(XnL3[t]->Name == "radioButton2")
radioButton2->Checked = bool:Tonguearse(XnL3[t]->InnerText);

}
}
else if(XnL2[j]->Name == "CheckBoxes")
{
XmlNodeList^ XnL3 = XnL2[j]->ChildNodes;
for(int t = 0; t < XnL3->Count;t++)
{
if(XnL3[t]->Name == "checkBox1")
checkBox1->Checked = bool:Tonguearse(XnL3[t]->InnerText);
else if(XnL3[t]->Name == "checkBox2")
checkBox2->Checked = bool:Tonguearse(XnL3[t]->InnerText);

}
}

}
}
}
}
[/CPP]

منبع : سافت افزار

کدنویس : رامتین جوکار
کپی برداری از کدهای بالا فقط با ذکر نام سافت افزار قانونی و مجاز میباشد.

See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note فرمول زیر را به زبان c++ در آورید Download95 4 638 10-09-2014 ساعت 00:22
آخرین ارسال: Download95
Note اشکال در کدنویسی سی پلاس پلاس در ویژوال استودیو Abbas64 2 717 29-12-2013 ساعت 16:24
آخرین ارسال: Daniel

کاربرانِ درحال بازدید از این موضوع:   1 مهمان