powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / вложенные типы
4 сообщений из 4, страница 1 из 1
вложенные типы
    #34639644
detail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думал, что такое возможно, однако не получается реализовать: собственные типы с элементами-массивами переменной длины.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Type product
    productCode As Integer
    
    titles As Variant
    instances As Variant
    
    sqlQuery As String
End Type

Type productFile
    products As Variant
    fileName As String
    sheetName As String
    checkColumn As Integer
End Type
В типе product элемент titles и instances - массивы строк и целых чисел соответственно. Размер массива для каждого элемента типа product может быть свой.

Элемент products внутри productFile - это массив типа product. Число product в productFile может быть разным, поэтому вместо массива пришлось объявить variant, но даже так не работает.

ReDim myFile(0).products(6) As product - вызывает сообщение об ошибке array already dimensioned.

Как правильно организовать типы? Если лучше объектами, просьба показать на пальцах, как это делать.
...
Рейтинг: 0 / 0
вложенные типы
    #34639655
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не очень понял что именно ты хочешь зделать но так можно объявить в своих типах массив
с переменной длиной
в модуле
Код: plaintext
1.
2.
3.
4.
5.
Public Type productFile
    products() As String
    fileName As String
    sheetName As String
    checkColumn As Integer
End Type
в процедурах
Код: plaintext
1.
2.
3.
4.
5.
Dim f As productFile
Dim i As Integer
ReDim f.products( 10 )
For i =  0  To  10 
f.products(i) = "элемент" & i
Next i
...
Рейтинг: 0 / 0
вложенные типы
    #34639670
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или можно так поизвращаться со вложенными масивами
в модуле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Type product
    productCode As Integer
    titles() As Variant
    instances As Variant
    sqlQuery As String
End Type

Public Type productFile
    products() As product
    fileName As String
    sheetName As String
    checkColumn As Integer
End Type


в форме

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Command1_Click()
Dim f As productFile
Dim i As Integer
Dim j As Integer
ReDim f.products( 10 )
For i =  0  To  10 
    ReDim f.products(i).titles( 10 )
Next i
For i =  0  To  10 
   For j =  0  To  10 
        f.products(i).titles(j) = "products " & i & " titles" & j
    Next j
Next i
For i =  0  To  10 
        For j =  0  To  10 
        Debug.Print f.products(i).titles(j)
        Next j
Next i
End Sub
...
Рейтинг: 0 / 0
вложенные типы
    #34639676
detail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает. Спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / вложенные типы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]