Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > прочитать float из строки


Автор: Guest45 13.8.2016, 22:49
Есть строка из четырех байтов. Это двоичные байты от обычного типа с плавающей точкой: мантисса, порядок...
Требуется преобразовать такую строку в числовой тип (single, разумеется).

Как попроще сделать это?
В старых бейсиках была такая функция CVS, но в VB6 ее больше нету((((

Влом работать с битами; или, тем более, вставлять ассемблерные блоки. Нет ли какой хитрости, чтобы облегчить решение этой задачи?

По идее, если бы впихнуть эти байты непосредственно в память, занимаемую числовой переменной, всё должно получиться.
На память переменной указывает функция VarPtr, но как по полученному адресу произвести запись - не очень понимаю. (Вернее сказать - совсем не понимаю.)
Разъясните, посоветуйте, коль не в труд.

Автор: Akina 13.8.2016, 22:53
STFW "memcpy vb6"

Автор: Guest45 13.8.2016, 23:07
Если вы про сайт stfw.ru, то поиск по нему "memcpy vb6" не дал результатов :(

Автор: Akina 13.8.2016, 23:58
https://en.wiktionary.org/wiki/STFW

Автор: Guest45 14.8.2016, 09:00
Гуголь подойдет? http://www.google.ru/search?q=%22memcpy+vb6%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&newwindow=1&hl=ru

Автор: Guest45 10.9.2016, 23:14
Прошерстил весь Нет на предмет заглавной темы. Нашел, как мне показалось, интересную статью (с примерами):  http://bbs.vbstreets.ru/viewtopic.php?f=68&t=36100
Для тех, кто не знает, - функцию PutMem4, используемую там, надо предварительно в модуле продекларировать: описано здесь http://vbstreets.ru/VB/Articles/65973.aspx


Автор: Akina 10.9.2016, 23:18
Код

Private Declare Sub PutMem4 Lib "msvbvm60" (ByVal Addr As Long, ByVal NewVal As Long)

Автор: Guest45 10.9.2016, 23:56
Да, спасиб; я уже нашел. Вы бы сделали большую помощь, если бы снизошли написать эти несколько строчек при начале темы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)