Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


nastr,
Код: Выделить весь код
private void saveTreeNode(TreeNodeCollection nodes, int NoteID, ref int processed, ref bool root)
        {
            foreach (TreeNode node in nodes)
            {
                int ParentNoteID;
                if (root)
                {
                    ParentNoteID = -1;
                    root = false;
                }
                else
                    ParentNoteID = NoteID - 1;
                l.Add(new Trees(NoteID, ParentNoteID, node.Text));
                ++processed;
                saveTreeNode(node.Nodes, NoteID + 1, ref processed, ref root);
                root = true;
                NoteID = processed;
            }
        }
Во первых мне не нравится вот это условие:
Код: Выделить весь код
                int ParentNoteID;
                if (root) {
                    ParentNoteID = -1;
                    root = false;  }
                else  ParentNoteID = NoteID - 1;
....
                root = true;
                NoteID = processed;
В каждом вложении отсчет NodeID начинается сначала (с нули или с единицы).
поэтому NodeID = processed; мне не понятна.

Попробуйте для начала просто рекурсивную распечатку директорий сделать. Желательно с трассировкой.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:43, 20-12-2013 | #11