|
|
#1 |
|
Участник
|
Есть Binary значение размером 4 байта полученное из внешнего источника там это число с плавающей точкой, как в Аксапте его разшифровать?
|
|
|
|
|
#2 |
|
Участник
|
Цитата:
Сообщение от ivas
Есть Binary значение размером 4 байта полученное из внешнего источника там это число с плавающей точкой, как в Аксапте его разшифровать?
X++: Binary b = new Binary();
b.double();X++: ExtTypes::Double Последний раз редактировалось Lucky13; 05.09.2006 в 09:57. |
|
|
|
|
#3 |
|
Участник
|
С Double проблем нет прекрасно работает проблема именно с Float длинна 4 байта
|
|
|
|
|
#4 |
|
Участник
|
код:
PHP код:
|
|
|
|
|
#5 |
|
Участник
|
Посмотри класс COMVariant. У него есть свойство Float.
Чтобы сказать что-то более определенное надо знать как получаешь и как передаешь значение |
|
|
|
|
#6 |
|
Участник
|
Код:
binary b = new binary(4);
;
_record.binary(#DataOffset, b); // запись адреса b в другой binary: _record
fetch.call(_record); // вызов функции которая заполняет _record
//теперь в b лежит значение типа float 4 байта вот его то мне и нужно получить |
|
|
|
|
#7 |
|
Участник
|
Цитата:
Сообщение от Владимир Максимов
Посмотри класс COMVariant. У него есть свойство Float.
Чтобы сказать что-то более определенное надо знать как получаешь и как передаешь значение COMVariant спас спасибо! |
|
|
|
|
#8 |
|
Участник
|
Код: COMVariant f = new COMVariant(COMVariantInOut::In, COMVariantType::VT_R4);
;
f.long(b.dWord(0));
axValue = f.float(); |
|
|
|
|
#9 |
|
Moderator
|
В качестве P.S. До кучи в коллекцию. В классе ССADOField метод value содержит шикарный шаблон switch почти на все случаи жизни.
Правда, конкретно Ваш float (VT_R4) упрятан в double, но подправить недолго. Код: anytype value()
{
COMVariant value;
value = field.value();
switch (value.variantType())
{
case COMVariantType::VT_I2:
return value.byte();
case COMVariantType::VT_I4:
return value.int();
case COMVariantType::VT_R4, COMVariantType::VT_R8:
return value.double();
case COMVariantType::VT_CY:
return value.currency();
case COMVariantType::VT_DATE:
return value.date();
case COMVariantType::VT_BSTR:
return value.bStr();
case COMVariantType::VT_BOOL:
return value.boolean();
case COMVariantType::VT_DECIMAL:
return value.decimal();
case COMVariantType::VT_I1:
return value.byte();
case COMVariantType::VT_UI1:
return value.uInt();
case COMVariantType::VT_UI2:
return value.uShort();
case COMVariantType::VT_UI4:
return value.uLong();
}
return '';
} |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Внешнее приложение | 2 | |||
| Базовые типы С++ | 5 | |||
| ChangeDisplaySettings | 6 | |||
| WinAPI. Ссылка (POINT) третьего уровня вложенности | 2 | |||
| обертка к WinAPI PrintDlg | 12 | |||
|