Sub Main()
Randomize
Dim a(9) As Byte
Dim c As Integer
Dim c2 As Integer
Dim b As Boolean
For c = 0 To 9
b = False
Do While b = False
b = True
a(c) = Rnd() * 9
For c2 = 0 To c - 1
If a(c) = a(c2) Then b = False
Next
Loop
Next
Dim s As String
For c = 0 To 9
s = s & " " & a(c)
Next
MsgBox s
End Sub
Dim mas()
Sub DeleteIndex(Index as Long)
Dim x as Long
For x=Index to UBound(mas) - 1
mas(x) = mas(x+1)
Next
Redim Preserve mas(x)
End Sub
CopyMemory mas(Index), mas(Index+1), len(mas(0)) * (UBound(mas) - Index)
Redim Preserve mas(UBound(mas) - 1)
ALX_2002 писал(а):Товарищи, а зачем массив то ?
Не зря же коллекции придумали ? Из них же удобнее удаять элементы вроде ?
alibek писал(а):Это значит, что ты не можешь добавлять в коллекцию число или строку. Надо добавлять Variant.
Dim NewCollection As New Collection
Private Sub Form_Load()
NewCollection.Add 1, "1"
NewCollection.Add 2, "2"
NewCollection.Add 3, "3"
NewCollection.Add 4, "4"
NewCollection.Add 5, "5"
MsgBox NewCollection(5)
End Sub
Dim NewCollection As New Collection
Private Sub Form_Load()
Dim V As Long
For V = 1 To 100
NewCollection.Add V, CStr(V)
Next
MsgBox NewCollection(5)
End Sub
alibek писал(а):Хм... Ну тогда попробуй For Each использовать.
Dim NewCollection As New Collection
Private Sub Form_Load()
Dim V As Long
For V = 1 To 3
NewCollection.Add V
Next
For Each Element In NewCollection
MsgBox Element
Next
End Sub
Private Sub Form_Activate()
'/// Создаём новую коллекцию
Dim MyCollection As New Collection
'/// Заполняем коллекцию от 1 до 9
For N = 1 To 9
MyCollection.Add N
Next
'/// По желанию можно добавить и произвольные текстовые значения
'MyCollection.Add "A"
'MyCollection.Add "B"
'MyCollection.Add "C"
'MyCollection.Add "Что захочется"
'/// Запускаем цикл генерации
Do
'/// Инициализирует датчик случайных чисел.
Randomize
'/// Получаем номер произвольного элемента. Значение должно быть от 1 до размера массива-1. Т.к коллекция начинается с первого элемента
RandomElement = CLng(Rnd * (MyCollection.Count - 1)) + 1
'/// Выводи значение произвольного элемента коллекции
Print MyCollection(RandomElement)
'/// Удаляем его из коллекции. Удаление элемента приводит к смещению индексации коллекции.
'/// Например при удалении третьего элемента, четвёртый становится третьим, а пятый четвёртым и т.п
MyCollection.Remove RandomElement
'/// Прокручиваем цикл до тех пор, пока в коллекции не останется элементов
Loop Until MyCollection.Count <= 0
End Sub
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 18