Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Бейсик допускает рекурсивный вызов функций? Добавлено: 11.10.05 13:45  

Автор вопроса:  programmer1
Пишу функцию, которя находит по имени и возвращает объект HTMLNode из некоторого HTMLDocument'а.

Функция рекурсивная, описывается приблизительно так:
(хотя это и не важно, как она описывается...)

Function getNodeByName(Node as IHTMLDOMNode, byval myName as string) as IHTMLDOMNode


И вдруг меня ужасает сомнение, а Вижуал Бейсик вообще допускает рекурсивный вызов?
Это ведь даже не язык а скрипт какой-то. Вдруг он просто разругается и вся работа будет насмарку?!!!

Успокойте программера :)

Ответить

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

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



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #1 Добавлено: 11.10.05 13:51
Допускает.

Ответить

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



Вопросов: 11
Ответов: 13
 Профиль | | #2 Добавлено: 11.10.05 13:57
а ты пробовал?

Ответить

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



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #3 Добавлено: 11.10.05 14:04
Возьми, да попробуй, в чём проблема-то?

Ответить

Номер ответа: 4
Автор ответа:
 programmer1



Вопросов: 11
Ответов: 13
 Профиль | | #4 Добавлено: 11.10.05 14:08
проблема обычно бывает во времени :)

Ответить

Номер ответа: 5
Автор ответа:
 AndreyMp



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
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 11.10.05 20:54
Я не знаю ни одного языка, компилятор для которого разработан после 1995 года, который бы не поддерживал рекурсию.

Ответить

Номер ответа: 7
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #7 Добавлено: 11.10.05 21:07
Я не знаю ни одного языка, компилятор для которого разработан после 1995 года, который бы не поддерживал рекурсию.

Тоже верно.
проблема обычно бывает во времени

За те 6 минут пока я ответил в первый раз уже бы несколько раз попробовал.

Ответить

Номер ответа: 8
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #8
Добавлено: 12.10.05 08:06
При слишком глубокой рекурсии возможно переполнение стека. В PB размер стека можно увеличить, а в VB не знаю.

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 13.10.05 01:23
А в VB можно использовать ручной стек :)

Ответить

Номер ответа: 10
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #10
Добавлено: 13.10.05 04:57
Sharp,
 не пудри людям мозги ;)

Ответить

Номер ответа: 11
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #11 Добавлено: 13.10.05 11:45
А в VB можно использовать ручной стек
Ага,и ручной тормоз тоже :)
При слишком глубокой рекурсии возможно переполнение стека. В PB размер стека можно увеличить, а в VB не знаю.
Насколько я понял из вопроса автор хочет работать с HTML-документом, а там понадобится не слишком уж и глубокая рекурсия.

Ответить

Страница: 1 |

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



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