переменная как имя переменной

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
delta
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.06.2005 (Пт) 9:15
Откуда: Моск. обл.

переменная как имя переменной

Сообщение delta » 15.08.2005 (Пн) 20:51

Всем привет.
Кто ответит, есть ли возможнось в VB объявить переменную, как имя переменной? Поясню.
Пусть имеется процедура:

Sub procedura ( X As "имя переменной" , Y As integer)
что-то вроде ........ X=Y.............
End Sub

В результате требуется, чтобы результатом команд:

procedura ("Z", 5)
procedura ("intPeremennaia", 15)

было бы Z=5 и intPeremennaia = 15 ( а не X=15)

Кто сможет решить этот ребус, дайте знать.

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

Сообщение Amed » 15.08.2005 (Пн) 21:44

Используйте коллекции (Collection).

В поиск по форуму, MSDN и Яндекс.

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

Сообщение GSerg » 16.08.2005 (Вт) 1:32

Нафиг?

Sub procedura (byref X As integer, byval Y As integer)
X=Y
End Sub

procedura Z, 5
procedura intPeremennaia, 15
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

delta
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.06.2005 (Пт) 9:15
Откуда: Моск. обл.

Сообщение delta » 16.08.2005 (Вт) 7:30

Ну требуется как-то менять значения любых переменных.
В VB можно тормознуть программу, открыть отладчик, изменить какое-то значение и продолжить. Вот надо нечто подобное иметь в откомпилированной программе.
Грубо говоря - в одном текстбоксе - имя переменной (например "X", или "intPeremennaia", или может даже "text1.left"), а в другом текстбоксе - значение (5, 15, 150) и результат - присвоение этих значений переменным с соответствующими названиями. При этом не подходит вариант гиганского массива переменных с отдельной командой для каждой ....
Лично я не справился с задачей в несколько строк программы увязать строковую переменную с соответствующим названием изменяемой переменной.

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

Сообщение GSerg » 16.08.2005 (Вт) 7:43

И не справишься.
Имена переменных не попадают в exe, поэтому их надо самому ресолвить, на основе той же коллекции.

А объекты можно. Через CallByName.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

delta
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.06.2005 (Пт) 9:15
Откуда: Моск. обл.

Сообщение delta » 16.08.2005 (Вт) 8:15

Ну есть же у переменных какие-то адреса, должны быть способы ...
Просто не хочется верить, чтобы титан VB не предусмотрел решение этой проблемки.

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

Сообщение GSerg » 16.08.2005 (Вт) 8:20

А она никому не нужна, проблемка эта...

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

delta
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.06.2005 (Пт) 9:15
Откуда: Моск. обл.

Сообщение delta » 16.08.2005 (Вт) 8:26

Спасибо за разъяснение, но что значит "запоминать в коллекцию"?.
Я конечно поищу, но можно в двух словах?

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

Сообщение GSerg » 16.08.2005 (Вт) 8:41

Есть коллекция.
Добавляешь в неё адрес переменной, ключ - имя переменной.
Обращаешься к коллекции по имени, получаешь адрес.
Как ты потом достанешь из этого адреса значение и как узнаешь, сколько вообще байт оно занимает - это уже сам :)
Но поверь мне, не надо так делать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Amed » 16.08.2005 (Вт) 9:27

Если доводы GSerg'a неубедительны, поверь мне :)

"Не надо так делать" (с) :)

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

Сообщение GSerg » 16.08.2005 (Вт) 9:34

Amed, у тебя совесть есть? Верни прежнюю аватару, а не эту на 50 Кб :)
Да и отвлекает, ибо слишком шустрый мух...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

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

    TopList