Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм FileTree, кто объяснит ? 
:(
    Опции темы
XPurple
Дата 15.2.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 4.5.2006
Где: Челябинск

Репутация: нет
Всего: 1



Не могу понять алгоритма построения FileTree (дерева файлов), начиная от корня и ниже.
Вывести "Гладкий" список файлов, используя рекурсивный метод, получается.
Но дальше затык.
Не могу понять: как привязать глубину хранения файла для передаваемой в качестве значения рекурсивной функции.

Требуется построить что-типа этого

--->DIR1-
               |----
               |----
--->DIR2-
               |----DIR3-
               |              |----DIR4
               |
               |----DIR5-
                              |---File1

--->DIR6

и т.д.
--------------------
Кто никогда ни о чем не спрашивает: тот либо знает все, либо не знает ничего.  Не помню, кто сказал, может быть, я   (с) 
PM MAIL   Вверх
Aloha
Дата 15.2.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
**


Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006

Репутация: 4
Всего: 165



XPurple

Есть такой TreeView control, который отображает список узлов (Node Objects) в иерархическом виде. Глянь в сторону объектной модели Node, возможно это подскажет решение проблемы.
Узлы Node имеют в частности такие свойства:

Root - это свойство возвращает ссылку на корневой узел;
Parent - это свойство возвращает ссылку на родительский узел данного узла;
Child - это свойство возвращает ссылку на первый дочерний узел данного узла;
Children - это свойство возвращает количество дочерних узлов данного узла;

У каждого родительского узла понятное дело может быть несколько дочерних узлов (а может и не быть). Следующие свойства определяют взаиморасположение дочерних узлов некоего родительского узла:

Next - это свойство возвращает ссылку на следующий (сестринский) узел;
Previous - это свойство возвращает ссылку на предыдущий (сестринский) узел;
FirstSibling - это свойство возвращает ссылку на первый (сестринский) узел;
LastSibling - это свойство возвращает ссылку на последний (сестринский) узел.


Это сообщение отредактировал(а) Aloha - 15.2.2007, 23:00
PM   Вверх
XPurple
Дата 16.2.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 4.5.2006
Где: Челябинск

Репутация: нет
Всего: 1



Хорошо.
Посмотрим
--------------------
Кто никогда ни о чем не спрашивает: тот либо знает все, либо не знает ничего.  Не помню, кто сказал, может быть, я   (с) 
PM MAIL   Вверх
Alexandr87
Дата 16.2.2007, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 1
Всего: 39



Добавляете дополнительный параметр в вашу рекурсивную функцию - глубина.
При вызове очередном рекурсивном вызове (передаете в функцию значение данного параметра, увеличенное на единицу),  в зависимости от этого параметра, выводите необходимое число пробелов перед вашим  |----
PM Jabber   Вверх
XPurple
Дата 19.2.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 4.5.2006
Где: Челябинск

Репутация: нет
Всего: 1



Не все так просто.
--------------------
Кто никогда ни о чем не спрашивает: тот либо знает все, либо не знает ничего.  Не помню, кто сказал, может быть, я   (с) 
PM MAIL   Вверх
Alexandr87
Дата 19.2.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 1
Всего: 39



Цитата(XPurple @  19.2.2007,  11:15 Найти цитируемый пост)
Не все так просто. 

лаконично smile
В чём проблемма?
PM Jabber   Вверх
XPurple
Дата 19.2.2007, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 4.5.2006
Где: Челябинск

Репутация: нет
Всего: 1



проблема в том, что я не знаю, как определить степень вложенности относительно корня.

Например:


Root

         1
               2
                    3
                         4
               2


Как определить степень вложенности относительно корня последней директории ?
1,2,3,4 это степени вложенности директорий


В таком виде пока выводится:

Код

ARJ-ALL
ARJ-VER260
     |———>agents.doc
     |———>arj$disp.exe
     |———>arj.doc
     |———>arj.exe
     |———>arjback.bat
     |———>arjcrypt.com
     |———>arjdisp.bat
     |———>arjdisp.doc
     |———>arjincr.bat
     |———>arjrest.bat
     |———>arjsort.bat
     |———>arjsort.com
     |———>arjsort.doc
     |———>arj_bbs.doc
     |———>credit.crd
     |———>errors.doc
     |———>file_id.diz
     |———>intro.doc
     |———>license.doc
     |———>orderfrm.doc
     |———>perechen.arj
     |———>peresh~2.doc
     |———>readme.doc
     |———>rearj.cfg
     |———>rearj.doc
     |———>rearj.exe
     |———>rearjall.bat
     |———>register.exe
     |———>sysop.doc
     |———>technote.doc
     |———>testarj.bat
     |———>update.doc
     |———>whatsnew.doc
     |———>why_arj.doc
ARJCRACK
     |———>arjcrack.exe
     |———>arjcrack.exe
WIN
WINZIP70
     |———>deviant.nfo
     |———>winzip70.exe
     |———>deviant.nfo
     |———>winzip70.exe
     |———>deviant.nfo
     |———>winzip70.exe



Это сообщение отредактировал(а) XPurple - 19.2.2007, 12:23
--------------------
Кто никогда ни о чем не спрашивает: тот либо знает все, либо не знает ничего.  Не помню, кто сказал, может быть, я   (с) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.