Маленький комплимент функции Len

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Маленький комплимент функции Len

Сообщение GSerg » 16.09.2004 (Чт) 15:40

Оказывается, если объявлен массив любых элементов, то можно получить Len элемента даже в том случае, если массив не существует.
Код: Выделить всё
dim a() as long
msgbox len(a(5))


При этом в качестве индекса можно использовать любое число, даже выходящее за границы размерностей.

Ещё не sizeof(type), но уже... :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.09.2004 (Чт) 16:46

так что выдал то?!??!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 16.09.2004 (Чт) 18:05

Выдал: размер = 4 байта, как и должно быть
Моду создают модоки, а распространяют модозвоны.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 16.09.2004 (Чт) 18:07

[b]Sebas[/b]
Шшшшш!

GSerg
Это разве новость? :) У Len есть свои веселые вещи. Попробуй поиграться разными типами и увидишь.
Даю творческое задание :)
1. Массив создан, инициализирован, но в Len передается несуществующий индекс
2. -//-, передается существующий индекс

И это проведи для типов Integer, Long, String и Variant :). Смотри и удивляйся.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение GSerg » 16.09.2004 (Чт) 18:35

Совершенно ничему не удивился :)
На структурном типе вызов len сводится к подстановке размера оного, на ссылочном - к реальном рантаймовому подсчёту размера объекта, а не самой ссылочной переменной (ибо она всегда 4).

Просто я раньше не знал, что можно вызвать len от неинициализированного массива :) Я ведь пишу modSecurity, а там все структуры переменного размера, так раньше-то я объявлял переменную только для того, чтобы взять её размер, ну или константу заводил типа sizeofLUID_AND_ATTRIBUTES :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 16.09.2004 (Чт) 18:45

Это-то как раз и неудивительно... Скорее, такое "задание" надо было не тебе давать, ты и так, "сам с усам". Но есть люди, которые очень удивляются.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в Народный треп

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34

    TopList