Дурацкий масив

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Дурацкий масив

Сообщение neic » 31.05.2005 (Вт) 14:58

Вот пишу я так

Код: Выделить всё
asdasdsda = asdasdsda + 1 ' переменная asdasdsda начинает считать с нуля
ReDim nm(asdasdsda)
nm(asdasdsda) = Label1.Caption
kl = nm(1)


При втором нажати на кнопку asdasdsda будет равно 2, а kl будет равняться ""(тобишь пустоте), при том что kl просто не может быть равным пустоте!

Чё за бойда?

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 31.05.2005 (Вт) 15:04

Попробуй в саммом начале кода поставить asdasdsda<> 0
думаю помочь должно. :?
Пошли все на фиг, я фея! :flower:

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Дурацкий масив

Сообщение Andrey Fedorov » 31.05.2005 (Вт) 15:10

neic писал(а):Чё за бойда?


Почитай получше про Redim, и обрати внимание на Preserve, тогда и найдешь свою ошибку.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 31.05.2005 (Вт) 16:04

А также не помешает прочтение хелпа по Option Base.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 31.05.2005 (Вт) 16:07

Ennor
особенно: :lol: Option Base 1

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 31.05.2005 (Вт) 18:18

Andrey Fedorov, Ennor, Konst_One
Все ваши ответы просто не помогают, и не ужели вы думаете что я дурак? Я уже использова и так и сяк, и в модуле оъявлял и .т.д. и всё равно не работает!

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 31.05.2005 (Вт) 20:30

Вроде пашет всё. Ничё не понял в чём трабл. :?: :roll:

Код: Выделить всё
Dim asdasdsda As Long
Private Sub Form_Load()
asdasdsda = asdasdsda + 1
ReDim nm(asdasdsda)
nm(asdasdsda) = Label1.Caption
kl = nm(1)
MsgBox kl
End Sub

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 31.05.2005 (Вт) 21:29

да тебе же уже сказали redim обнуляет масив, а что бы этого не произошло вместо своего redim напиши

ReDim Preserve nm(asdasdsda)
This message will self destruct in five seconds!!!

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 31.05.2005 (Вт) 21:47

iolaus писал(а):да тебе же уже сказали redim обнуляет масив, а что бы этого не произошло вместо своего redim напиши

ReDim Preserve nm(asdasdsda)

Да не работает эта бойда проверял уже!

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 31.05.2005 (Вт) 22:27

быть такого не может!!!
напиши где и как обьявляешь массив и точно что делаешь...
This message will self destruct in five seconds!!!

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 01.06.2005 (Ср) 6:30

Время жизни переменных - обьяви нужные переменные на уровне программного модуля через Public ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2005 (Ср) 8:08

neic писал(а):Andrey Fedorov, Ennor, Konst_One
Все ваши ответы просто не помогают, и не ужели вы думаете что я дурак?

:lol:
Lasciate ogni speranza, voi ch'entrate.

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 01.06.2005 (Ср) 10:09

:)
This message will self destruct in five seconds!!!

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 01.06.2005 (Ср) 12:13

Кидай проект сюда!
На это не смотрите! Это не подпись!!!!!!

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 01.06.2005 (Ср) 18:17

Да я сделал уже так чтобы этот массив не нужен был! Но всё же хочкться разобраться!

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.06.2005 (Ср) 19:42

neic писал(а):Andrey Fedorov, Ennor, Konst_One
Все ваши ответы просто не помогают, и не ужели вы думаете что я дурак?


:roll:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.06.2005 (Ср) 21:15

Окей, приступим. Показывай, как ты объявляешь переменные:
1. nm
2. kl
Далее, не вижу смысла в применении инкремента к неинициализированной переменной за пределами цикла. Я про вот это:
Код: Выделить всё
asdasdsda = asdasdsda + 1

Гораздо более правильным во всех смыслах будет написать так:
Код: Выделить всё
asdasdsda = 1

<Это просто пипец какой-то, кто же так переменные называет, если не хочет потом в ним сам же и запутаться? А заодно и других запутать.>

Ну и напоследок, покажи, как у тебя установлены Option Base, Option Explicit и Option Compare.

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 01.06.2005 (Ср) 22:37

Ennor
<Это просто пипец какой-то, кто же так переменные называет, если не хочет потом в ним сам же и запутаться? А заодно и других запутать.>

:):):):)

Да ладно вам так загоняться все эти Option ставить все работает даже если только массив обьявить и все!!!! только ща попробовал....[/b]
This message will self destruct in five seconds!!!

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 02.06.2005 (Чт) 15:08

А че такое Option Compare?
На это не смотрите! Это не подпись!!!!!!

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 02.06.2005 (Чт) 15:20

Ennor писал(а):<Это просто пипец какой-то, кто же так переменные называет, если не хочет потом в ним сам же и запутаться? А заодно и других запутать.>


Ага. Это точно. Если я программку пишу тока чтобы че-то проверить, я переменные называю a, b, c, d...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

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

Сообщение tyomitch » 02.06.2005 (Чт) 15:25

Alexander N. Samarin писал(а):А че такое Option Compare?

MSDN писал(а):Option Compare Statement

Used at module level to declare the default comparison method to use when string data is compared.

Остаток этой статьи найди в MSDN сам.
Изображение

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 02.06.2005 (Чт) 15:58

Найти-то ее я нашел, но еичего не понял :oops:
На это не смотрите! Это не подпись!!!!!!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 03.06.2005 (Пт) 0:53

2 Alexander N. Samarin:
Option Compare Binary - сравнение строк с учетом регистра символов. В этом случае "йцукен" <> "ЙцукЕн". Самый жесткий случай, используется редко, но полезен при обработке XML-данных, т.к. язык XML весь, от начала и до конца, чувствителен к регистру.
Option Compare Text - сравнение строк без учета регистра. Соответственно, "йцукен" = "ЙЦУКЕН". Дефолтная установка в VB6, в принципе, можно не указывать.

В обычном VB варианты на этом исчерпываются. Но, если ты используешь Access VBA, то появляется еще один вариант - Option Compare Database. В этом случае результат сравнения зависит от соответствующей настройке в БД Access, которую ты используешь. Сам я с аксессом никогда не работал, поэтому точнее не опишу, спрашивай у зубров :).

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 03.06.2005 (Пт) 1:38

Ennor писал(а):...сравнение строк без учета регистра. Соответственно, "йцукен" = "ЙЦУКЕН". Дефолтная установка в VB6, в принципе, можно...


Неа! Как раз наоборот - по дефолту в VB6 Binary сравнение.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 03.06.2005 (Пт) 11:16

Thanks!! :D
На это не смотрите! Это не подпись!!!!!!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 03.06.2005 (Пт) 17:43

BV писал(а):Неа! Как раз наоборот - по дефолту в VB6 Binary сравнение.
Офигеть... действительно, по дефолту идет CS. Значит, я уже начинаю все забывать :(.


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

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

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

    TopList