x() as Double -> y() as Byte -> x() as Double

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

x() as Double -> y() as Byte -> x() as Double

Сообщение Antonariy » 20.09.2005 (Вт) 10:33

Как это сделать красиво? Пока что делаю через файл

Код: Выделить всё
    Open fName For Binary As #1
    Put #1, , x
    Close #1
    Open fName For Binary As #1
    ReDim y(0 To LOF(1) - 1)
    Get #1, , y
    Close #1
Лучший способ понять что-то самому — объяснить это другому.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 20.09.2005 (Вт) 10:42

Можно поизвращаться с CopyMemory, но это не для слабонервных +_+
Пример писать не буду =(

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

Сообщение alibek » 20.09.2005 (Вт) 11:06

Через CopyMemory и делать. Причем тут слабые нервы, не понимаю. Тут скорее слабые руки.
Lasciate ogni speranza, voi ch'entrate.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 20.09.2005 (Вт) 11:18

Вроде только CopyMemory...

ReDim y(0 to3) as Byte
CopyMemory y(0), d, 8

и обратно

CopyMemory d, y(0), 8

Есть ещё GetMem4/PumMem4 (вроде правильно написал) у msvbvm60, но это в принципе тоже самое...
Последний раз редактировалось CodeName33 20.09.2005 (Вт) 12:02, всего редактировалось 1 раз.
Программисты не глючат - глючат компиляторы...

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 20.09.2005 (Вт) 11:29

Через CopyMemory и делать. Причем тут слабые нервы, не понимаю. Тут скорее слабые руки.

Ну, может, не все же такие умные как ты и я +_+ <ironic>

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.09.2005 (Вт) 11:31

Насчет нервов он прав. Обычно мои попытки использовать CopyMemory заканчиваются плачевно. Однако с массивами проще.

Гы... всего две строчки
Код: Выделить всё
ReDim y(0 To (UBound(x) + 1) * 8 - 1)
    CopyMemory y(0), x(0), (UBound(x) + 1) * 8
Лучший способ понять что-то самому — объяснить это другому.


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 13

    TopList