Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: TreeView в каком виде сохранять? Добавлено: 01.04.03 19:35  

Автор вопроса:  mc-black | Web-сайт: mc-black.narod.ru/dzp.htm | ICQ: 308-534-060 
Использую TreeView, сохраняю полное описание дерева в текстовом файле, в тэгах типа html-комментариев. Какой формат предпочесть и может вообще по-другому сохранять состояние дерева? Требуется очень шустро работать с древовидной структурой. Может у кого есть какие наработки, поделитесь, плс.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 PeterS



Вопросов: 24
Ответов: 109
 Профиль | | #1 Добавлено: 01.04.03 21:46

Здравствуйте!

 Вот мой вариант, можете попробовать

'Сохранение
Dim lngIndex As Long, arrData() As String
 On Error Resume Next
 ReDim arrData(1 To TreeView.Nodes.Count)
For lngIndex = 1 To TreeView.Nodes.Count
  If TreeView.Nodes(lngIndex).Parent Is Nothing Then
    arrData(lngIndex) = 0 & Chr(1) & TreeView.Nodes(lngIndex).Text
  Else
    arrData(lngIndex) = TreeView.Nodes(lngIndex).Parent.Index & Chr(1) & TreeView.Nodes(lngIndex).Text
  End If
Next

Open App.Path & "\TreeView.txt" For Output As #1
  Print #1, Join(arrData, Chr(0));
Close

'Загрузка
 On Error Resume Next
Open App.Path & "\TreeView.txt" For Binary Access Read As #1
  strData = Space(LOF(1))
Get #1, , strData
Close

TreeView.Nodes.Clear
arrData = Split(strData, Chr(0))
For lngIndex = LBound(arrData) To UBound(arrData)
  arrTemp = Split(arrData(lngIndex), Chr(1))
  If arrTemp(0) = "0" Then
    TreeView.Nodes.Add , , , arrTemp(1), 1, 2
  Else
    TreeView.Nodes.Add CLng(arrTemp(0)), tvwChild, , arrTemp(1), img, imgsel
  End If
Next

 Желаю удачи!

Ответить

Номер ответа: 2
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #2 Добавлено: 01.04.03 23:41

Выглядит весьма неплохо. А что тебя не устраивает?

Я допустим все подобные вещи в базе храню если есть возможность(в смысле база), но она то в текущем проэкте большая поэтому +/- роли не играет. А вот тебе ради одного дерева связыватся смысла конечно нет

Ответить

Номер ответа: 3
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #3
Добавлено: 02.04.03 08:25
Если сохранять дерево, то лучше XML формат и воспользоваться для этого DOMDocument из библиотеки MSXML (msxml.dll)

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 02.04.03 11:48
Спасибо всем! PeterS, код выглядит оччень элегантно! На досуге попробую. Только дорабатывать все равно придется: там я использую все три типа картинок и много чего до кучи. Это не трудно. Magnus, с базами я связываться не стану. Деревьев будет много, но хранить по одному дереву в одной базе не стоит (наверное). boevik, чует мое сердце, что xml - хороший выход, но я, сорри, с ним не работал и мало представляю что делать.

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 07.04.03 09:23
Привет снова, PeterS! Опробовал твой способ, немного дорабатывал под свой, все работает. Мне так понравилось! Как я сам не додумался до Join/Split? :) Если хочешь, могу прислать незаконченный исходник программки. Ессно, при условии не распространения. Хочу еще дорабатывать формат файла, н-р, чтобы он содержал заголовочную часть и т.п. Как будут изменения я тебе сообщу (если хочешь). С наилучшими!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам