Страница: 1 |
Вопрос: Бейсик допускает рекурсивный вызов функций? | Добавлено: 11.10.05 13:45 |
Автор вопроса: ![]() |
Пишу функцию, которя находит по имени и возвращает объект HTMLNode из некоторого HTMLDocument'а.
Функция рекурсивная, описывается приблизительно так: (хотя это и не важно, как она описывается...) Function getNodeByName(Node as IHTMLDOMNode, byval myName as string) as IHTMLDOMNode И вдруг меня ужасает сомнение, а Вижуал Бейсик вообще допускает рекурсивный вызов? Это ведь даже не язык а скрипт какой-то. Вдруг он просто разругается и вся работа будет насмарку?!!! Успокойте программера :) |
Ответы | Всего ответов: 11 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #1 | Добавлено: 11.10.05 13:51 |
Допускает. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 11 Ответов: 13 |
Профиль | Цитата | #2 | Добавлено: 11.10.05 13:57 |
а ты пробовал? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 176176951 Вопросов: 14 Ответов: 655 |
Профиль | Цитата | #3 | Добавлено: 11.10.05 14:04 |
Возьми, да попробуй, в чём проблема-то? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 11 Ответов: 13 |
Профиль | Цитата | #4 | Добавлено: 11.10.05 14:08 |
проблема обычно бывает во времени ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #5 | Добавлено: 11.10.05 15:29 |
Допустим так
Private Sub FindChildNoteXML(inNode As IXMLDOMNode) Dim oNode1 As IXMLDOMNodeList Set oNode1 = inNode.childNodes For k = 0 To oNode1.length - 1 List1.AddItem oNode1.Item(k).xml If oNode1.Item(k).nodeType = NODE_TEXT Then List2.AddItem oNode1.Item(k).Text List3.AddItem oNode1.Item(k).parentNode.nodeName End If Call FindChildNoteXML(oNode1.Item(k)) Next k End Sub |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 11.10.05 20:54 |
Я не знаю ни одного языка, компилятор для которого разработан после 1995 года, который бы не поддерживал рекурсию. |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #7 | Добавлено: 11.10.05 21:07 |
Я не знаю ни одного языка, компилятор для которого разработан после 1995 года, который бы не поддерживал рекурсию.
Тоже верно. проблема обычно бывает во времени
За те 6 минут пока я ответил в первый раз уже бы несколько раз попробовал. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 12.10.05 08:06 |
При слишком глубокой рекурсии возможно переполнение стека. В PB размер стека можно увеличить, а в VB не знаю. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 13.10.05 01:23 |
А в VB можно использовать ручной стек ![]() |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 13.10.05 04:57 |
Sharp,
не пудри людям мозги ![]() |
Номер ответа: 11 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #11 | Добавлено: 13.10.05 11:45 |
А в VB можно использовать ручной стек Ага,и ручной тормоз тоже ![]() При слишком глубокой рекурсии возможно переполнение стека. В PB размер стека можно увеличить, а в VB не знаю.
Насколько я понял из вопроса автор хочет работать с HTML-документом, а там понадобится не слишком уж и глубокая рекурсия.
|
Страница: 1 |
|