• ذخیره و بازیابی تمامی اطلاعات در 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++ در آورید Sajjad95 4 769 10-09-2014 ساعت 00:22
    آخرین ارسال: Sajjad95
    Note اشکال در کدنویسی سی پلاس پلاس در ویژوال استودیو Abbas64 2 843 29-12-2013 ساعت 16:24
    آخرین ارسال: Daniel

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