PDA

View Full Version : پیاده سازی TreeView از روی فایل متنی (تست هوش)



ali reza mansoori 2
پنج شنبه 11 آبان 1391, 17:03 عصر
سلام دوستان
میخواستم TreeView رو از روی فایل متنی که ضمیمه کردم مقدار دهی کنم
فایل که ضمیمه کردم بعد از پیاده شدن روی TreeView باید به این شکل بشه
کسی هست که بتونه منو راهنمایی کنه

Hossis
دوشنبه 15 آبان 1391, 19:49 عصر
من قبلا مشابه این رو انجام دادم
باید نود ریشه رو در یک متغیر بگذارید (که آخرین ریشه اضافه شده رو نگه داری کنه)
بعد باید دستورات شرطی بگذارید که اگر دارای کاراکتر [ بود:
اگر, زیرمجموعه آخرین ریشه (متغیر بالا بشه ) و این زیرمجموعه رو هم در یک متغیر ذخیره کنید
تا اگر کروشه داشت و دارای سه عدد داخل کروشه بود, به آخرین زیرمجموعه اضافه بشه

hakim22
دوشنبه 15 آبان 1391, 21:25 عصر
شما میتوانید با دو سه خط کد نویسی و استفاده از Serializer ها نودها رو به یک فایل ببرید و بعد از اون فایل Deserialize کنید.
نیازی به شبیه سازی نودها نیست.
برای شبیه سازی یک لیست کافی است. دو ستون که یکی شماره ی خود نود و دیگری شماره ی نود والد آن است.
ابتدا می بایست درونی ترین والد را پیدا کنید تا به ریشه برسید و بعد به صورت عکس عمل کرده و فرزندهای هر ریشه را پیدا کنید.

Hossis
دوشنبه 15 آبان 1391, 22:10 عصر
شما میتوانید با دو سه خط کد نویسی و استفاده از Serializer ها نودها رو به یک فایل ببرید و بعد از اون فایل Deserialize کنید.
نیازی به شبیه سازی نودها نیست.
برای شبیه سازی یک لیست کافی است. دو ستون که یکی شماره ی خود نود و دیگری شماره ی نود والد آن است.
ابتدا می بایست درونی ترین والد را پیدا کنید تا به ریشه برسید و بعد به صورت عکس عمل کرده و فرزندهای هر ریشه را پیدا کنید.
ظاهرا ایشون اصرار داشتند که از روی فایل متنی این کار رو انجام بدهند. البته می تونستند نودها رو در xml ذخیره کنند یا راههای دیگه ولی بعضا جهاتی هست که لابد باید در فایل متنی ذخیره بشه
من با یک کد, سرفصل های فایل اچ تی ام ال رو هم توی treeview لود می کنم که در این کد, ناچاریم با فایل اچ تی ام ال که خود فایلی متنی هست , کار کنیم
اما منظور شما رو از سریالیزر متوجه نشدم, اگر ممکنه در ضمن یک مثال تبیین کنید
با تشکر

ali reza mansoori 2
دوشنبه 15 آبان 1391, 23:12 عصر
از همه دوستان تشکر میکنم که وقت گذاشتید و پاسخ دادید
به کمک شما این کار رو انجام دادم


من با یک کد, سرفصل های فایل اچ تی ام ال رو هم توی treeview لود می کنم که در این کد, ناچاریم با فایل اچ تی ام ال که خود فایلی متنی هست , کار کنیم
من هم تقریبا همچین چیزی می خواستم پیاده کنم
میخوام داخل TreeView کل لینک های یک فایل Html رو ذخیره کنم
بعد هر کدارم از لینک ها رو باز کنم و لینک های داخل اون رو به نود جاری اضافه کنم
و این کار رو مثلا تا 10 مرحله انجام بدم
از دوستان کسی هست که در این مورد منو راهنمایی کنه

فرید نجفلو
سه شنبه 16 آبان 1391, 15:21 عصر
سلام
درسته که به قول دوستان راه های بهتری هم هم هست ولی به هر حال اون چیزی که شما می خواید رو می گیم
تو یه پروژه جدید یک TreeView به فرم اضافه و کد پایین رو رو بهش بدید
یادتون باشه صحت اطلاعات داخل فایل ورودی با خودتون هست

(در ضمن اگه کسی بخواد به شما جواب بده این کار رو می کنه و نیازی به تحریک شما (تست هوش) ندارن و این کار هم درست نیست!)

Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
LoadTree()
TreeView1.ExpandAll()
End Sub

Private Sub LoadTree()
TreeView1.Nodes.Clear()
Dim Lines = IO.File.ReadAllLines(Application.StartupPath & "\tree.txt")

Dim ParentNode As New TreeNode
For Each ln In Lines
If ln.StartsWith("[") Then
ln = ln.Replace("[", "")
ln = ln.Replace("]", "")

Dim Nodes = ln.Split("-")

ParentNode = TreeView1.Nodes(Nodes(0))
If ParentNode Is Nothing Then ParentNode = TreeView1.Nodes.Add(Nodes(0), Nodes(0))

For i = 1 To Nodes.Length - 1
If ParentNode.Nodes(Nodes(i)) IsNot Nothing Then
ParentNode = ParentNode.Nodes(Nodes(i))
Else
ParentNode = ParentNode.Nodes.Add(Nodes(i), Nodes(i))
End If
Next

Else
ParentNode.Nodes.Add(ln, ln)
End If
Next

End Sub
End Class

ali reza mansoori 2
سه شنبه 16 آبان 1391, 21:54 عصر
از همگی ممنون کدی که مد نظرم بود رو نوشتم


میخوام داخل TreeView کل لینک های یک فایل Html رو ذخیره کنم
بعد هر کدارم از لینک ها رو باز کنم و لینک های داخل اون رو به نود جاری اضافه کنم
و این کار رو مثلا تا 10 مرحله انجام بدم
این کار هم امروز انجام دادم الان به کد ها دسترسی ندارم که بزار اینجا


(در ضمن اگه کسی بخواد به شما جواب بده این کار رو می کنه و نیازی به تحریک شما (تست هوش) ندارن و این کار هم درست نیست!)
از دوست خوبمون به خاطر جوابی که دادند و هم به خاطر نکته اخلاقی که تدکر دادند تشکر میکنم