Страница: 1 |
Страница: 1 |
Вопрос: задать массив объектов или элементов User Type
Добавлено: 27.11.07 05:51
Автор вопроса: night-roll
необходимо задать массив объектов или элементов User Type в строгой определённости
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #1
Добавлено: 27.11.07 14:44
Так, что ли?
Option Base 1
Type Person
Name As String
Surname As String
Age As Byte
End Type
Dim TheGroup(3) As Person
Sub FillTheGroup()
With TheGroup(1)
.Name = "Vasja"
.Surname = "Pupkin"
.Age = 99
End With
With TheGroup(2)
'...
End With
With TheGroup(3)
'...
End With
End Sub
Номер ответа: 2
Автор ответа:
night-roll
Вопросов: 36
Ответов: 326
Профиль | | #2
Добавлено: 01.12.07 20:20
а как потом по свойству вычислить элемент(объект)?
так что ли (рекурсией)?
Type Person
Name As String
Surname As String
Age As Byte
End Type
Sub FillTheGroup()
Dim TheGroup(3) As Person
Dim Index As Long ' счётчик
Dim strRet As String
strRet = "Vasja"
For Index=0 To TheGroup.Count
With TheGroup(Index)
If .Name = "Vasja" Then Exit For
End With
Next Index
End Sub
Номер ответа: 3
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #3
Добавлено: 02.12.07 21:47
TheGroup.Count - работает??!
Name As String
Surname As String
Age As Byte
End Type
Sub FillTheGroup()
Dim TheGroup(3) As Person
Dim Index As Long ' счётчик
Dim strRet As String
strRet = "VasJa"
TheGroup(2).Name = strRet
For Index = LBound(TheGroup()) To UBound(TheGroup()) ' знакомтесь, LBound и UBound, нижняя и верхняя границы массивов
With TheGroup(Index)
If LCase$(.Name) = LCase$(strRet) Then ' LCase$ - независимо от регистра (перевод в нижний)
MsgBox "Запись " & Index & ", Name = " & strRet
Exit For
End If
End With
Next Index
End Sub
Номер ответа: 4
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #4
Добавлено: 02.12.07 22:08
Верно, у массивов нет свойства Count. Надо бы перебирать от нижней границы до верхней...
Да и лучше бы функцию написать, что-то типа ElemIndex(theArray As Variant) As Long.
Номер ответа: 5
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #5
Добавлено: 02.12.07 22:52
Номер ответа: 6
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #6
Добавлено: 03.12.07 17:50
Блина, ну я и говорю, что "верно, надо перебирать"...
Номер ответа: 7
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #7
Добавлено: 03.12.07 19:53
"надо бы ..." означает что это еще не было приведено ранее
Номер ответа: 8
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #8
Добавлено: 03.12.07 19:54
"надо бы ..." означает что это еще не было приведено ранее
Номер ответа: 9
Автор ответа:
night-roll
Вопросов: 36
Ответов: 326
Профиль | | #9
Добавлено: 10.12.07 18:55
зачем оффтопить? был задан конкретный вопрос, и получен ответ! СПАСИБО! to Nytrogen!
TheGroup.Count - написано для балды! (неохота код было расписывать) суть, ведь, понятна! важен алгоритм, а не код! рекурсия форева!!! мать её так!