Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Re: Алгоритм подсчёта узлов дерева

Мы где-то виделись, Alexei?

15 Jun 04 19:59:36 в RU.VISUAL.BASIC Alexei Gunyakov -> All:

AG> Разыскивается алгоритм подсчёта количества всех узлов в TreeView,
AG> нижележащих по отношению к данному. Nodes(i).Children не подходит, т.к.
AG> возвращает только детей, а мне необходимо подсчитать также детей этих
AG> детей, детей детей этих детей :) и т.д.

Рекурсия рулит! :)

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Алгоритм подсчёта узлов дерева

Good to see you, _Dmitriy_!


Dmitriy Kozyrev --> Alexei Gunyakov (15 Июня 2004, 18:44):
AG>> Разыскивается алгоритм подсчёта количества всех узлов в
AG>> TreeView, нижележащих по отношению к данному. Nodes(i).Children не
AG>> подходит, т.к. возвращает только детей, а мне необходимо
AG>> подсчитать также детей этих детей, детей детей этих детей :) и
AG>> т.д.
DK> Рекурсия рулит! :)
Я уже догадался. Hо может быть не стоит изобретать велосипед, если все уже давно на нём ездят? Интересует url с алгоритмом или хотя бы простейший пример рекурсивной функции на Basic.


* Origin: Riddle here, riddle there. Riddles almost everywhere (2:5011/105.52)


Алгоритм подсчёта узлов дерева

From: "A. Skrobov"

Tue Jun 15 2004 22:04, Alexei Gunyakov wrote to Dmitriy Kozyrev:

AG>>> Разыскивается алгоритм подсчёта количества всех узлов в
AG>>> TreeView, нижележащих по отношению к данному. Nodes(i).Children не
AG>>> подходит, т.к. возвращает только детей, а мне необходимо
AG>>> подсчитать также детей этих детей, детей детей этих детей :) и
AG>>> т.д.
DK>> Рекурсия рулит! :)
AG> Я уже догадался. Hо может быть не стоит изобретать велосипед, если
AG> все уже давно на нём ездят? Интересует url с алгоритмом или хотя бы
AG> простейший пример рекурсивной функции на Basic.
Function NodeChildren(Node As Node) As Long
Dim Count As Long, Subnode As Node
For Each Subnode In Node.Children
Count = Count + 1 + NodeChildren(Subnode)
Next
NodeChildren = Count
End Function

* Origin: FidoNet Online (2:5020/175.2)


Массивы пользовательского типа

From: "A. Skrobov"

Tue Jun 15 2004 19:57, Alexei Gunyakov wrote to A. Skrobov:

AG> ' Тут мы пытаемся заполнить массив экземпляров класса NodesInformation
AG> NodesInformation(k).longRowCoordinate = 34 ' Ошибка здесь!
Перед присваиванием: Set NodesInformation(k) = New NodeOfTree

AG> Как передать массив(объектов, переменных, пользовательского типа) в
AG> качестве аргумента в функцию?
AG> Строка (***) правильно написано, если NodesInformation - массив
AG> экземпляров класса NodeOfTree?
Да.

AG> Как его обрабатывать внутри этой функции? В скобках первым аргументов в
AG> функции FromLinkedListToTreeView что должно быть?(******)
Так всё правильно ведь у тебя.

* Origin: FidoNet Online (2:5020/175.2)


Hайти модем

Приветствую тебя, _Alex_ !


Alex Mazaev и Vitaliy Pryahin сидели дома,пили пиво и болтали на тему _Re: Hайти модем_.

VP>> при написании проги все работает, но вот откомпилированная не рабротает.

AM> Вот что я использую
AM> === Cut ===
AM> Function IsModem() As Byte 'Поиск модема
AM> 'Возвращает номер порта, на котором найден включенный модем
AM> 'или 0, если включенный модем не найден
AM> Dim port As Byte, x As Integer
AM> port = 1
ОГPОМHОЕ СПАСИБО,работает, но вот бага... если модем, например на первом порту и он занят др. приложением, и мы ищем где находится мрдем, то возникают жууууууткие тормоза.

Hе скучай,_Alex_. С уважением,Виталий.

* Origin: (2:5096/19)


Re: new class child

From: "Ilja"

Hello, A.!
You wrote to Roman Yuakovlev on Tue, 15 Jun 2004 16:52:46 +0400:

RY>> newchild.father = Me
AS> Set newchild.father = Me
Set newchild.Parent = Me

With best regards, Ilja.


* Origin: Demos online service (2:5020/400)


ping

Приветствую Вас!

Подскажите, плз, как можно проверить программно, при известном ip,
отвечает машина в данный момент или нет? Может можно юзать ping.exe,
принимая от него результат?

С уважением, Андрей.


* Origin: The_Bulls echo gate (2:5070/66)


4000 строк в Dictionary

||*()*|| Ах это вы, Sergei ? А я вас не узнал без санитара...

13 июн 04 года ты писал(а) к All:


SH> При старте моя прога читает 4000 коротких строк из TXT файла
SH> и создает Dictionary из них. Все происходит достаточно быстро.
SH> Как мне лучше запихнуть эти строки в программу, и чтобы скорости
SH> загрузки не потерять? Еще лучше было бы хранить их в двоичном виде
SH> между сеансами, а не считывать каждый раз. Hабор строк не меняется.
SH> Dictionary нужна, чтобы быстро обращаться к строкам по key
SH> в программе.

ReDim KorotkayaStroka(4000) As String
Hу и так далее...

А ты что ли антивирус пишешь?

I'll be back, Sergei !
www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)


new class child

RY>> dim withevents newchild as child
RY>> set newchild = new child
RY>> newchild.boy = True
RY>> newchild.weight = 3?00
RY>> newchild.birthdate = 15-06-2004
AS> newchild.birthdate = #06/15/2004#
RY>> newchild.name = "Artem"
RY>> newchild.father = Me
AS> Set newchild.father = Me
Да ну тебя, я на очень скорую руку писал. ;)

Вот последние патчи:

newchild.lenght = 53
newchild.weight = 3400 ' с первого раза не запомнил :(


RY>> Я не жалуюсь, я хвастаюсь. ;)
AS> Хвастайся грамотно ;-)
А с кое-кого, за поддержание бренда, еще и причитается. ;)


* Origin: 1134 (2:5045/44.13)


Алгоритм подсчёта узлов дерева

Good to see you, _A._!


A. Skrobov --> Alexei Gunyakov (15 Июня 2004, 21:56):
AS> Function NodeChildren(Node As Node) As Long
AS> Dim Count As Long, Subnode As Node
AS> For Each Subnode In Node.Children
AS> Count = Count + 1 + NodeChildren(Subnode)
AS> Next
AS> NodeChildren = Count
AS> End Function
Вроде подход у меня правильный, а вот с кодом... того... Сначала попробовал сделать по твоему совету, но оказалось что For...Each поддерживается только для коллекций. Пробую так:

Public Function GetAllSubCount(ByVal nParent As Node) As Long
Dim longCount As Long
Dim i, c As Integer
Dim xNode As Node
Dim aIsChild() As Boolean
c = Form1.TreeView1.Nodes.Count
ReDim aIsChild(0 To c) As Boolean
' Dim theParent As Node
' Set theParent = nParent
If (nParent.Children = 0) Then
GetAllSubCount = 0
Else
For i = 1 To Form1.TreeView1.Nodes.Count
xNode = Form1.TreeView1.Nodes(i).Parent
If xNode = nParent Then
aIsChild(i) = True
GetAllSubCount(xNode) ' Type mismatch (Error 13)
End If
Next i

longCount = 0
For i = 1 To Form1.TreeView1.Nodes.Count
If aIsChild(i) = True Then
longCount = longCount + 1
End If
Next i
GetAllSubCount = longCount
End If

End Function



* Origin: Riddle here, riddle there. Riddles almost everywhere (2:5011/105.52)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты