Из Type в String и обратно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MROSOPOT
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 15.12.2004 (Ср) 17:50
Откуда: Angarsk

Из Type в String и обратно

Сообщение MROSOPOT » 14.02.2006 (Вт) 17:18

Есть Type
Type
str as string
lng as long
bool as boolean
end type

Надо этот тип в стринговую переменную и наоборот.

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

Сообщение alibek » 14.02.2006 (Вт) 17:19

И каковы правила сериализации?
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Amed » 14.02.2006 (Вт) 17:31

private function TypeToString(var as type) as string
typetostring=var.str & " " & val(var.lng) & " " & cstr(var.bool)
end function

Из стринга обратно парсингом. Понятно, как?

MROSOPOT
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 15.12.2004 (Ср) 17:50
Откуда: Angarsk

re

Сообщение MROSOPOT » 14.02.2006 (Вт) 17:42

Спасибо, про это уже думал.
А через CopyMemory никак не получиться?

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

Сообщение GSerg » 14.02.2006 (Вт) 17:44

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

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

Сообщение alibek » 14.02.2006 (Вт) 17:46

Кстати, советую переставить мемберов в обратном порядке. Намного проще будет.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Amed » 14.02.2006 (Вт) 18:02

alibek, парсить слева направо или справа налево - почти одно и то же :)

MROSOPOT, выигрыш будет минимален. Если не отрицателен.

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

Сообщение alibek » 14.02.2006 (Вт) 18:06

Amed писал(а):alibek, парсить слева направо или справа налево - почти одно и то же :)

Но иметь мемберы фиксированной длины в начале или в конце структуры -- не одно и то же. Т.к. в этом случае парсить не придется, достаточно будет Mid$() с предопределенными позициями.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Amed » 14.02.2006 (Вт) 18:22

В моем примере тоже достаточно и парсить не придется. Но код будет длиннее, чем если Boolean и Long писать сначала, факт.

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

Re: re

Сообщение ANDLL » 14.02.2006 (Вт) 21:44

MROSOPOT писал(а):А через CopyMemory никак не получиться?

Ну раскрою пост GSerg'а. Через CopyMemory - получится. Но ты вкурсе, сколько байт занимает переменная string в структуре? И что это за байты?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


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

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

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

    TopList