Проблема с массивом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Проблема с массивом

Сообщение Maxxx.!!!. » 27.01.2007 (Сб) 12:16

Код: Выделить всё
Dim abc as Integer
abc=100
dim aaa(abc) as String


Не работает такая конструкция, т.е. я не могу создать массив с количеством ячеек, указанным в переменной.
Никогда так не врут, как во время войны, после охоты и перед выборами...

ACiD
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 261
Зарегистрирован: 10.12.2005 (Сб) 2:29
Откуда: г. Санкт - Петербург

Сообщение ACiD » 27.01.2007 (Сб) 12:43

Код: Выделить всё
ReDim aaa(abc) As String

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.01.2007 (Сб) 14:33

и Dim aaa() As String до этого тоже не помешает.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 27.01.2007 (Сб) 15:13

А после Dim aaa() as string
желательно инициализировать массив Redim aaa(0) иначе будет error
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.01.2007 (Сб) 15:14

JohnK
Прекрати флудить бред :twisted:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 27.01.2007 (Сб) 15:30

Хакер
Ну для начала отвечай за свои слова.

А если сомневаешься - поробуй сам.

PS. А судя по кол-ву постов, флудишь ты... :D
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.01.2007 (Сб) 15:44

JohnK

Видимо этого было мало?

Флудишь ты :x

Ты писал(а):А после Dim aaa() as string
желательно инициализировать массив Redim aaa(0) иначе будет error


Что Redim aaa(0) ? Что это такое? Границы не заданы? А что если Option Base 1 ? К чему этот ноль? Автору нужно, чтобы верхняя граница массива равнялась abc. К чему весь этот бред?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение Amed » 27.01.2007 (Сб) 15:50

JohnK писал(а):А после Dim aaa() as string
желательно инициализировать массив Redim aaa(0) иначе будет error

Хакер прав. Это глупости.

JohnK, проверяй код перед тем, как запостить. Сразу масса вопросов и претензий отпадет у всех.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 27.01.2007 (Сб) 15:57

Моя теория верна, когда нужен динамический массив с неизвестной верхней границей.
А раз это бред - умываю руки....
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.01.2007 (Сб) 16:01

Твоя теория в любом случае не верна.

У динамического массива нет чётко-определённой верхней и нижней границы. Её можно определить с помощью Redim <массив>(<нг> To <вг>)
где нг и вг - нижняя и верхняя граница.

Твой же код изменяет размерность массива в лучшем случае от 0 до 0 (т.е. у массива будет только один элемент с идексом 0), в а худшем, если Option Base 1, то он (код) просто вызывает ошибку Subscript out of range.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение GSerg » 27.01.2007 (Сб) 16:44

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

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Сообщение Maxxx.!!!. » 27.01.2007 (Сб) 20:59

ACiDXX писал(а):
Код: Выделить всё
ReDim aaa(abc) As String



Это мне помогло сразу. Так что спасибо. Ничего больше добавлять не пришлось. Хотя я думал, что тут можно обойтись без динамических массивов, а если приравнять массив не к переменной, а к константе, то, может быть, и без ReDim можно обойтись... Ну это так, мысли вслух...
Никогда так не врут, как во время войны, после охоты и перед выборами...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.01.2007 (Сб) 21:07

Если вместо abc использовать константу то да. Но константа задаётся лишь один раз, изменять её нельзя - на то она и константа.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Сообщение Maxxx.!!!. » 27.01.2007 (Сб) 21:54

Хакер писал(а):Если вместо abc использовать константу то да. Но константа задаётся лишь один раз, изменять её нельзя - на то она и константа.


Логично.
Никогда так не врут, как во время войны, после охоты и перед выборами...


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

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

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

    TopList