Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сохранение дерева из CTreeCtrl

7.6K
20 мая 2005 года
gss
14 / / 01.02.2005
есть дерево.
хочется залить его в файл, чтобы потом, если понадобится, достать его оттуда.
подскажите, плиз, как это можно сделать?
Serialize не предлагать, не работает.
425
20 мая 2005 года
sq_deep
498 / / 18.02.2005
Сделайте так, чтобы каждая вершина дерева имела уникальный идентификатор. Можно для этого использовать HTREEITEM, но лучше сделать свой. При построении дерева каждая вершина должна знать идентификатор родителя. Записываете идентификаторы вместе с прочей информацией о вершине, и потом при чтении этого будет достаточно, чтобы восстановить структуру дерева.

[COLOR=silver]Кстати, ровно то же самое надо делать при использовании сериализации, и тогда это тоже будет работать. Просто так вызывать CTreeCtrl::Serialize() смысла нет, поскольку на самом деле вызовется CObject::Serialize(), который ничего умного не запишет, потому что не имеет понятия о структуре вашего дерева. Чтобы сериализация работала в CTreeCtrl, надо вывести из CTreeCtrl класс и переопределить в нём функцию Serialize(), где и сделать всё то, что я описал выше.

Вообще сериализация — хорошая идея, и я бы ею воспользовался. Но вам, конечно, виднее.[/COLOR]
7.6K
20 мая 2005 года
gss
14 / / 01.02.2005
Спасибо за совет, но я уже сделал по-другому. Я обхожу дерево и для каждого элемента дерева записываю уровень вложенности - этого достаточно, чтобы восстановить дерево при чтении.
488
20 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by gss
Спасибо за совет, но я уже сделал по-другому. Я обхожу дерево и для каждого элемента дерева записываю уровень вложенности - этого достаточно, чтобы восстановить дерево при чтении.

Ага, кто-то предложил ознакомиться с Borlandовским TTreeView.SaveToFile/LoadFromFile. Или сам догадался?

7.6K
20 мая 2005 года
gss
14 / / 01.02.2005
Builder'а под рукой не было, так что...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог