Обсуждение программирования на 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) |