Тип cтруктура(Struct)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Info_m.be_free
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 154
Зарегистрирован: 27.02.2003 (Чт) 21:38
Откуда: Ирпень

Тип cтруктура(Struct)

Сообщение Info_m.be_free » 24.09.2005 (Сб) 20:57

Как в бейсике реализовать сишный тип struct? Я тут помучился и решил спросить совета умных людей. По почкам сильно не бить знаю что здесь не си форум но очень хочется. Может ессь у кого?

Ем вилкой...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.09.2005 (Сб) 21:04

Сам понял, чё сказал? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.09.2005 (Сб) 21:04

Используйте модуль класса. (Бейсиковский аналог сишной структуры - класс).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.09.2005 (Сб) 21:12

Amed
Ты отчасти прав, но ты, имхо, внёс ещё большую путаницу в голову Info_m.be_free :) Таки хотелось бы узнать, что именно он имел в виду.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.09.2005 (Сб) 21:15

Я полностью прав ;)

Info_m.be_free нужен аналог struct. Он есть. 8)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.09.2005 (Сб) 21:41

To Info_m.be_free

Вот тебе аналог сишной структуры :
Код: Выделить всё
Type MyType
    nFirst As Long
    nSecond As Long
End Type

Dim MyVar as MyType

MyVar.First = 12345
MyVar.Second=67890
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.09.2005 (Сб) 21:45

vvs_adm
Теперь переработай свой пример с учётом того, что struct может содержать в себе функции :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.09.2005 (Сб) 21:48

Вообще-то, не все так плохо.
Привлечь ассемблерные вставки, и функциональность повысится ;)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.09.2005 (Сб) 23:53

GSerg писал(а):vvs_adm
Теперь переработай свой пример с учётом того, что struct может содержать в себе функции :)

Легко, и без ассемблерных вставок: http://www.mentalis.org/apilist/2091523 ... 22C72.html (ты ведь знал, что я эту ссылку дам, правда?)
А Amed категорически не прав. Классы самоуничтожаются, а UDT, как и сишные структуры, - нет.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.09.2005 (Вс) 0:03

Дык в личке мы с ним по этому поводу говорили :)
Но он всё равно :razz:

А что ты дашь именно эту ссылку, я даже не догадывался :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Info_m.be_free
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 154
Зарегистрирован: 27.02.2003 (Чт) 21:38
Откуда: Ирпень

Сообщение Info_m.be_free » 25.09.2005 (Вс) 4:10

Спасибо большое Всем :) за внимание :D но...
:shock:
GSerg
Я таки сказал, что хочу использовать структуру что-то вроде разнотипного массива еллементов, и чтобы к ним можно было обращаться по индексу и по имени... я их потом буду складывать, сортировать, выводить в treeview и мариновать... вот.
vvs_adm ну не совсем то, с учетом приведенного уточнения надеюсь ясно что не то... или уточните как уточить под то что я заточил плиз...
tyomitch как всегда на высоте..
Нет, я понял это офигительная структура окна, я только не понял как мне это использовать
Amed клевый банан он на целый день отвлек меня от мыслей... так о чем это я? .. ах да, действительно хочу без ассемблерных вставок действительно классом.
_________________________________________
таки да на бейсике это может и неполу'чится... с1разу :idea: но Надежду убивают последней... хух выговорился.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 25.09.2005 (Вс) 11:53

Info_m.be_free писал(а):Я таки сказал, что хочу использовать структуру что-то вроде разнотипного массива еллементов, и чтобы к ним можно было обращаться по индексу и по имени... я их потом буду складывать, сортировать, выводить в treeview и мариновать... вот.

Полного аналога в VB нет. Пользовательские типы позволяют структурировать информацию (слышите? -- структура! :)) и хранить каждый набор, например в массиве или коллекции, как единый элемент, но в самом типизированном наборе нет доступа к элементу по индексу. К самой коллекции можно обратиться как по индексу, так и по ключу. Классы в коллекции - это вообще супер-пупер, хотя и там к свойствам нельзя обратиться по индексу. Видимо придётся чем-то пожертвовать или делать комбинацию.
Info_m.be_free писал(а):таки да на бейсике это может и неполу'чится... с1разу :idea:

Таки не то чтобы нет :)

Info_m.be_free
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 154
Зарегистрирован: 27.02.2003 (Чт) 21:38
Откуда: Ирпень

Сообщение Info_m.be_free » 26.09.2005 (Пн) 16:58

что никак? я вот думал взять несколько массивов для каждого типа данных и имени и потом
srtuct Cstruct(a :"String", b: 2, c:arr());
связать как нибудь так :
arrName__arrString_______arrNum___arrArr
a________ a1="String"____ b1=null___c1=null
b ________a2=null________b2 =2____c2=null
c________ a3=null________b3=null___c3=arr() надеюсь наглядно....

но может все таки найдется готовое решение.... :idea:
имхо коллекции будут жрать памяти неменьше чем этот оптимизированый изврат...
________________________________________________________
у меня голова заранее болит, :shock: я не спал :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, SemrushBot и гости: 92

    TopList