PDA

View Full Version : امکان open کردن در زمان اجرا



mohandesan
یک شنبه 04 شهریور 1386, 08:31 صبح
با سلام
من یک treeview دارم که کاربر در زمان اجرا تعدادی نود ایجاد می کند و به هر نود یک لینک می دهد پس از این با زدن دکمه save همه اطلاعات (tree (index,name,text,linkدر داخل فایل ذخیره می شود حال می خواهم با زدن دکمه open پروزه ذخیره شده به همان صورتی که ایجاد شده بود باز شود
تو رو خدا کمک کنید فوریه

ghafoori
یک شنبه 04 شهریور 1386, 09:43 صبح
دوست عزیز دوباره اطلاعات (tree (index,name,text,link تک تک می خوانی و یک tree ایحاد می کنی مشکل اصلی شما چیست بیشتر توضیح دهید

mohandesan
یک شنبه 04 شهریور 1386, 09:57 صبح
با سلام
ترتیب نودهای tree در فرم 2 باید دقیقا مثل فرم 1 باشد حالمن چگونه با توجه به اطلاعات ذخیره شده در فایل txt نودهای tree را ایجاد کنم

mohandesan
سه شنبه 06 شهریور 1386, 08:00 صبح
لطفا جواب دهید
خیلی فوریه

پویا
سه شنبه 06 شهریور 1386, 13:32 عصر
شما باید علاوه بر Index یک فیلد دیگه برای پدر هر نود داشته باشین مثل ParentIndex
با استفاده از این فیلد هر نود رو به پدر خودش متصل کنی و درختواره رو بسازی

ghafoori
سه شنبه 06 شهریور 1386, 17:11 عصر
دوست عزیز اول یک جدول با 5 فیلد درست کنید (index,name,text,link,parentindex) و می توانید از کد زیر استفاده کنید یک همچین کدی بنویسید


Dim t As DataSet1.DataTable1DataTable
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim n As TreeNode
create_tree(0, n)
tree.Nodes.Add(n)
End Sub
Dim tree As TreeView
Sub create_tree(ByVal index As Integer, ByVal node As TreeNode)
For Each r As DataSet1.DataTable1Row In t.Select("parentindex=" + index.ToString)
Dim n As New TreeNode(r.name)
n.Tag = r.link
''
''
node.Nodes.Add(n)
create_tree(r.index, n)
Next
End Sub

DataSet1.DataTable1DataTable اسم جدول شما در دیتاست است

mryam30
سه شنبه 06 شهریور 1386, 21:45 عصر
با سلام و تشکر
جناب غفوری من قبلا هم گفته بودم اطلاعات tree من در یک فایل txt ذخیره میشه من نمی تونم از database استفاده کنم

ghafoori
چهارشنبه 07 شهریور 1386, 19:17 عصر
این طور کار شما بسیار راحتر می شود تمام اطلاعات را داخل دیتاست ذخیره می کنید و با متد writexml ان را داخل فایل می نویسید و با متد readxml ان را بخوانی کلی کد نویسی شما کاهش پیدا می کند و همون راهی است که من قبلا پیشنهاد دادم

jafari1
چهارشنبه 29 خرداد 1387, 22:46 عصر
جناب آقاي غفوري
كدي كه زحمت كشيديد روي سطر

For Each r As DataSet1.DataTable1Row In t.Select("parentindex=" + index

خطاي زير را ميدهد

Object reference not set to an instance of an object.
لطفا راهنمايي فرماييد

ermia2008
پنج شنبه 30 خرداد 1387, 18:26 عصر
سلام.
برای ذخیره Tree توی فایل شما باید اطلاعات مربوط به هر نود رو با یه ترتیب خاص تو فایل ذخیره کنید. مثلا با کاراکتر "|" اونارو از هم جدا کنید. البته برای پیمودن همه نودها و زیر شاخه هاش باید یه برنامه بازگشتی بنویسید که اگه خود Child ها هم زیر شاخه داشتند اونا رو هم بدست بیاره.

ghafoori
جمعه 31 خرداد 1387, 18:38 عصر
جناب آقاي غفوري
كدي كه زحمت كشيديد روي سطر

For Each r As DataSet1.DataTable1Row In t.Select("parentindex=" + index

خطاي زير را ميدهد

Object reference not set to an instance of an object.
لطفا راهنمايي فرماييد
ان کدها یک راهنمایی بود از چگونگی اجرا و چگونگی کار مثلا در این کد من t که جدول باشه درست تعریف نشده و هیچ نمونه ای از ان ایجاد نشده شما باید ابتدا ان را در تابع new کنی یا بصورت پارامتر به تابع بفرستی در غیر این صورت ان خطا را می دهد

jafari1
شنبه 01 تیر 1387, 18:54 عصر
جناب آقاي غفوري
اگر زحمت بكشيد كد مورد نظر را بنويسيد متشكر ميشوم چون خيلي در ان موضوع تسلط ندارم