Возможно ли это в принципе?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
0xy
Бывалый
Бывалый
 
Сообщения: 223
Зарегистрирован: 14.06.2006 (Ср) 2:34

Возможно ли это в принципе?

Сообщение 0xy » 22.01.2007 (Пн) 21:34

Код: Выделить всё
Dim a$
a="Integer"
Dim b as [a] ' Имелось в виду as Integer

Существует ли синтаксис для реализации этого трюка?

PS
Реально a="UserTypeXX"

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 22.01.2007 (Пн) 22:05

Нет.
А я все практикую лечение травами...

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 22.01.2007 (Пн) 23:10

Нет, в общем случае. Если написать для каждого простого типа класс-обертку, то нечто подобное получится

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 23.01.2007 (Вт) 2:33

Осталось лишь уточнить, насколько "оно надо"...
А я все практикую лечение травами...

0xy
Бывалый
Бывалый
 
Сообщения: 223
Зарегистрирован: 14.06.2006 (Ср) 2:34

Сообщение 0xy » 23.01.2007 (Вт) 5:47

_ae_ писал(а):Если написать для каждого простого типа класс-обертку, то нечто подобное получится

А можно пример (для типа UserType)?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 25.01.2007 (Чт) 15:21

А так не пойдет?

Код: Выделить всё
Dim a$
a="Integer"

Select case a
case "Integer"
dim i as integer
case "UserType"
dim i as UserType
end select
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

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

Сообщение alibek » 25.01.2007 (Чт) 15:26

А ты попробуй.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Ennor » 25.01.2007 (Чт) 18:51

Если тебе нужна такая вот прям абсолютная гибкость и универсальность твоего кода, то проще всего тебе будет хранить данные в байтовых массивах. В них можно хранить абсолютно любой тип данных.

Перегонять из массива байт в нужный тебе тип и обратно - в поиск по CopyMemory().

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 25.01.2007 (Чт) 19:18

Ennor
Хм. Так уж любой, прямо таки автосериализация....
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 26.01.2007 (Пт) 0:01

ANDLL
Просвети, а какой тип данных нельзя хранить в байтовом массиве? :wink:
А я все практикую лечение травами...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 26.01.2007 (Пт) 0:35

Если тип состоит из пяти ссылок на разные места, то что бы сохранить его простого CopyMemory мало надо именно что сериализацию делать.
Если тип содержит скажем описатель чего-то, или ссылку на out-of-process класс, то сериализовать его нельзя.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 26.01.2007 (Пт) 0:41

Что "фактически" представлет собой любая ссылка? Строка? Описатель? :wink:
А я все практикую лечение травами...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 26.01.2007 (Пт) 0:44

Twister
Вобщем, это все словоблудие. Я тебе покажу скажем вот такой тип:
Код: Выделить всё
public type A
B as Word.Application
end type
А ты мне напиши функцию для сериализации. Причем с помощью CopyMemory
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 26.01.2007 (Пт) 0:48

ANDLL
К сожалению, я не знаю структуру этого типа. Знал бы - написал.
Ты же сам прекрасно понимаешь, что все это - ООПшная мишура. Физически любой тип просто набор байт...
А я все практикую лечение травами...

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

Сообщение tyomitch » 26.01.2007 (Пт) 1:13

Так я тебе расскажу. Там 4 байта: указатель на IApllication. Что по этому указателю -- никто не знает. И не узнает, ибо это меняется от версии к версии. Давай, сериализуй ;-)
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 26.01.2007 (Пт) 1:16

Итак. Мы с ANDLL как всегда любим поспорить и на этот раз наш спор разгорелся в асе. На чем порешили:

Хранить в байтовом массиве можно все что угодно (замечу, именно так был мной поставлен вопрос изначально).
Восстановить тоже можно все что хочешь...
А вот работать после восстановления все это дело обязательств не давало. :) Наглядный пример - ссылка на out-of-process класс.

Короче - хранить можно все, сериализовать нет.
А я все практикую лечение травами...

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

Сообщение tyomitch » 26.01.2007 (Пт) 1:25

"Хранить можно, только работать не будет" -- один-в-один по анекдоту "все грибы съедобные, но некоторые только один раз."

Какой смысл хранить что-то, что после восстановления неотвратимо перестанет работать?

Воистину, мне твои посты кажутся словоблудием.
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 26.01.2007 (Пт) 1:46

Какой смысл хранить что-то, что после восстановления неотвратимо перестанет работать?
Абсолютно никакого. Ни кто и не хранит.

Воистину, мне твои посты кажутся словоблудием.
Словоблудие? Да, наверное так. Просто, еще раз повторюсь, вопрос стоял о хранении и я решил выяснить у ANDLL, что же такого нельзя загнать в массив байт...

все грибы съедобные, но некоторые только один раз
На фразу дня не тянет, конечно, но все равно прикольно получилось. Напоминает - "Мы сначала поругались, а потом помирились... Дважды." :)
А я все практикую лечение травами...

Winitar
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 06.07.2006 (Чт) 20:45
Откуда: Астана

Сообщение Winitar » 26.01.2007 (Пт) 19:33

Разве нельзя обойтись обычными способами? :?

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

Сообщение Хакер » 26.01.2007 (Пт) 20:05

Winitar
Если вы нам о них (обычных способах) расскажите, то с удовольствием.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

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

    TopList