DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: steven7890
今日帖子: 8
在线用户: 14
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 ybj316 (ybj) ★☆☆☆☆ -
盒子活跃会员
2021/2/18 20:51:28
标题:
通达信day文件 成交额字段 解析问题! 请教论坛大拿? 浏览:196
加入我的收藏
楼主: delphi代码:
procedure TForm1.Button8Click(Sender: TObject);
var
  iAmountHex5, iAmountHex6, iAmountHex7, iAmountHex8, amount: string;
begin
  iAmountHex5 := 'E7'; //21
  iAmountHex6 := '45'; //22
  iAmountHex7 := '4B'; //23
  iAmountHex8 := '4E'; //24
  amount:= intToStr(strToInt64('$' + iAmountHex8 + iAmountHex7 + iAmountHex6 + iAmountHex5));
   showmessage(amount);  //结果是1313555943 
 
end;

php的解决: 参见    https://bbs.csdn.net/topics/391813105

请问delphi 怎么得到 值 852588992  ?
----------------------------------------------
-
作者:
男 keymark (keymark) ▲▲△△△ -
注册会员
2021/2/18 21:53:58
1楼: 你可以当做浮点数解释
print_r(unpack('f*', $h));
Array
(
    [1] => 852588992
)

    n   :   double;
    nn:Single;
剩下的靠你自己了
Unit1.pas.93: n:=$E7454B4E;
00000000006F45B5 48B80000C069A9E8EC41 mov rax,$41ece8a969c00000
00000000006F45BF 48894538         mov [rbp+$38],rax
Unit1.pas.94: nn:=$E7454B4E;
00000000006F45C3 C745344B45674F   mov [rbp+$34],$4f67454b
Unit1.pas.95: n:=852588992;
00000000006F45CA 48B8000000E0BC68C941 mov rax,$41c968bce0000000
00000000006F45D4 48894538         mov [rbp+$38],rax
Unit1.pas.96: nn:=852588992;
00000000006F45D8 C74534E7454B4E   mov [rbp+$34],$4e4b45e7


Unit1.pas.93: n:=$E7454B4E;
005FD5B4 C745F00000C069   mov [ebp-$10],$69c00000
005FD5BB C745F4A9E8EC41   mov [ebp-$0c],$41ece8a9
Unit1.pas.94: nn:=$E7454B4E;
005FD5C2 C745EC4B45674F   mov [ebp-$14],$4f67454b
Unit1.pas.95: n:=852588992;
005FD5C9 C745F0000000E0   mov [ebp-$10],$e0000000
005FD5D0 C745F4BC68C941   mov [ebp-$0c],$41c968bc
Unit1.pas.96: nn:=852588992;
005FD5D7 C745ECE7454B4E   mov [ebp-$14],$4e4b45e7


https://www.delphipraxis.net/88867-4-bytes-als-float-betrachten.html
function HexToSingle(Value: String): Single;
 var
   IntValue: Integer;
   FloatValue: Single absolute IntValue;
 begin
   IntValue:=StrToInt('$'+Value);
   Result:=FloatValue;
 end;

procedure TForm1.Button3Click(Sender: TObject);
var f: Single;
begin
  f := HexToSingle('4E4B45E7');
  Caption :=f.tostring;
end;
此帖子包含附件:
PNG 图像
大小:23.5K
----------------------------------------------
播客
作者:
男 keymark (keymark) ▲▲△△△ -
注册会员
2021/2/18 22:37:01
2楼: https://www.cnblogs.com/delphi-xe5/p/6110840.html
此帖子包含附件:
PNG 图像
大小:18.1K
----------------------------------------------
播客
作者:
男 ybj316 (ybj) ★☆☆☆☆ -
盒子活跃会员
2021/2/19 9:20:41
3楼: @keymark  非常感谢!!
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行54.6875毫秒 RSS