PDA

View Full Version : ذخیره کردن treeview



mehdi_522
جمعه 09 مرداد 1388, 09:27 صبح
دوستان با سلام
من توي برنامه ميخواهم از treeview استفاده کنم اما نمي دانم چطور نو ک اضافه مي کنم توي ديتا بيس ذخيره بشه و بعد بتونه آن دوباره بازيابي کنم توي اينترنت گشتم يک کلاس پيدا کردم که اين کار را انجام ميده و اما treeview داخل يک فايل ذخيره مکنه و دوباره آن از فايل ميخونه treeview را بازسازي مکنه حال اگر بخواهم برنامه تحت شبکه اجر کنم با مشکل مواجه ميشوم ايا از دوستان برنامه يا راه حلي دارد که بشه اينکار انجام داد

using System;
using System.Collections;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace NiccArshive
{
class LoadTreeView
{
#region Save (saveTree, saveNode)
/// <summary>
/// Save the TreeView content
/// </summary>
/// <param name="tree"></param>
/// <param name="filename"></param>
/// <returns>Errorcode as int</returns>
public static int saveTree(TreeView tree, string filename)
{
// Neues Array anlegen
ArrayList al = new ArrayList();
foreach (TreeNode tn in tree.Nodes)
{
// jede RootNode im TreeView sichern ...
al.Add(tn);

}

// Datei anlegen
Stream file = File.Open(filename, FileMode.Create);
// Binنr-Formatierer init.
BinaryFormatter bf = new BinaryFormatter();
try
{
// Serialisieren des Arrays
bf.Serialize(file, al);
}
catch (System.Runtime.Serialization.SerializationExcepti on e)
{
MessageBox.Show("مجموعه وجود ندارد", e.Message);
return -1; // ERROR
}

// Datei schliessen
file.Close();

return 0; // OKAY
}
#endregion


#region Load (loadTree, searchNode)
/// <summary>
/// Load the TreeView content
/// </summary>
/// <param name="tree"></param>
/// <param name="filename"></param>
/// <returns>Errorcode as int</returns>
public static int loadTree(TreeView tree, string filename)
{
if (File.Exists(filename))
{
// Datei ِffnen
Stream file = File.Open(filename, FileMode.Open);
// Binنr-Formatierer init.
BinaryFormatter bf = new BinaryFormatter();
// Object var. init.
object obj = null;
try
{
// Daten aus der Datei deserialisieren
obj = bf.Deserialize(file);
}
catch (System.Runtime.Serialization.SerializationExcepti on e)
{
MessageBox.Show("De-Serialization failed : {0}", e.Message);
return -1;
}
// Datei schliessen
file.Close();

// Neues Array erstellen
ArrayList nodeList = obj as ArrayList;

// load Root-Nodes
foreach (TreeNode node in nodeList)
{
tree.Nodes.Add(node);
}
return 0;

}
else return -2; // File existiert nicht
}
#endregion
}

}

hozouri
شنبه 10 مرداد 1388, 09:53 صبح
ببینید اگر شما اصول و قوائد ساختمان داده ها رو که بحث مفصلی هم روی درخت ها , ند ها , گره ها و ... داره رو بخونید به راحتی می تونید یک درخت رو هم ذخیره و هم بازیابی نمایید. این پرسش قبلاً هم گفته شده اگر جستجو کنید راهنمایی هایی رو در اون تاپیک پیدا می کنید...