我是这样写的!各位大哥们看看!
function TFrm_main.bytetolong(byte:Array of byte):string;
type
PReal = ^integer;
Var
captional :string;
Fvalue: integer;
begin
Fvalue := PReal(@byte[0])^;
captional :=inttostr(Fvalue);
result :=captional ;
end;
......
Move(TempData[0],PhaseBreak.PhaseBreak_CountTime,3); PhaseBreak_CountTime里面的数字为(25,16,0)
Move(TempData[3],PhaseBreak.PhaseABreak_CountTime,3);
Move(TempData[6],PhaseBreak.PhaseBBreak_CountTime,3);
Move(TempData[9],PhaseBreak.PhaseCBreak_CountTime,3); FStartTimeT := bytetolong(PhaseBreak.PhaseBreak_CountTime); 在FStartTimeT里面的 的数字为 419434521
FStartTimeA := bytetolong(PhaseBreak.PhaseABreak_CountTime);
FStartTimeB := bytetolong(PhaseBreak.PhaseBBreak_CountTime);
FStartTimeC := bytetolong(PhaseBreak.PhaseCBreak_CountTime);
FStartTimeT1 := strtodatetime(FStartTimeT);
FStartTimeT 的数字出错了. 但我目的是将BYTE里面的三个数字 要以MIN 分钟的显示出来. 要怎么写.我错误在哪里能不能麻烦各位帮我指正一下.假如愿意帮我解决问题.写的稍微详细点好不
谢谢拉!
function TFrm_main.bytetolong(byte:Array of byte):string;
type
PReal = ^integer;
Var
captional :string;
Fvalue: integer;
begin
Fvalue := PReal(@byte[0])^;
captional :=inttostr(Fvalue);
result :=captional ;
end;
......
Move(TempData[0],PhaseBreak.PhaseBreak_CountTime,3); PhaseBreak_CountTime里面的数字为(25,16,0)
Move(TempData[3],PhaseBreak.PhaseABreak_CountTime,3);
Move(TempData[6],PhaseBreak.PhaseBBreak_CountTime,3);
Move(TempData[9],PhaseBreak.PhaseCBreak_CountTime,3); FStartTimeT := bytetolong(PhaseBreak.PhaseBreak_CountTime); 在FStartTimeT里面的 的数字为 419434521
FStartTimeA := bytetolong(PhaseBreak.PhaseABreak_CountTime);
FStartTimeB := bytetolong(PhaseBreak.PhaseBBreak_CountTime);
FStartTimeC := bytetolong(PhaseBreak.PhaseCBreak_CountTime);
FStartTimeT1 := strtodatetime(FStartTimeT);
FStartTimeT 的数字出错了. 但我目的是将BYTE里面的三个数字 要以MIN 分钟的显示出来. 要怎么写.我错误在哪里能不能麻烦各位帮我指正一下.假如愿意帮我解决问题.写的稍微详细点好不
谢谢拉!
解决方案 »
- 出错:bitmap image is not valid.
- 谁给我看看 自学中遇到的难题!
- 屏幕操作的问题,急,各位大虾帮帮忙
- 请教,新手入门应该看那些书籍?
- 寻求关于F1BOOK的详细技术资料
- 我这份数据库备份和还原代码有没有错,帮忙看下
- 求救:Paradox表 Croupt index in ...\abc.db问题咋办?
- 一个问题 ?
- 串口通信问题:怀疑MSCOMM的接收数据能力有问题!!!
- 高手指点,如何调用netapi32.dll中的netMessageBufferSend函数?
- delphi中编译时提示缺少tflatgroupbox、 tflatbutton 、txpmenu、请问该如何解决 txpmenu
- KOL插件如何使用?
Str : string;
Arr : array[1..3] of Byte;
begin
//Arr赋值略
Str := Format('%d:%d:%d',[ Arr[1],Arr[2],Arr[3] ]);
ShowMessage(Str);
end;
Array[1..3] 表示的是一个三个字节数据类型.我要将这个转换成一个LONG类型的数据.然后在显示出来.你这种能不能教下我!
是从long型变量最左边放,还是从最右边?中间有没有间隔?
这些都要说清楚,才好给你写代码
先给你个简单的var
a,a1 : array[0..2] of Byte;
i : Integer;
begin
Zeromemory(@a,3);
a[0] := 56;
a[1] := 36; //保存为$00 00 24 38
i := 0;
i := i or a[0];
i := i or (a[1] shl 8); //还原
Zeromemory(@a1,3);
a1[0] := i and $ff;
a1[1] := i shr 8; ShowMessage(Format('%d分%d秒',[a1[1],a1[0]]));
end;
a,a1 : array[0..2] of Byte;
i,i1 : Integer; s : String;
c : char;
begin
Zeromemory(@a,3);
a[0] := 56;
a[1] := 36; //保存为$00 00 24 38
i := 0;
i := i or a[0];
i := i or (a[1] shl 8); //还原
Zeromemory(@a1,3);
a1[0] := i and $ff;
a1[1] := i shr 8; ShowMessage(Format('%d分%d秒',[a1[1],a1[0]])); //保存为$00 00 36 56
i1 := 0; s := IntToStr(a[0]);
HexToBin(@s[1],@c,1);
i1 :=i1 or Ord(c); s := IntToStr(a[1]);
HexToBin(@s[1],@c,1);
i1 := i1 or (Ord(c) shl 8); //还原
Zeromemory(@a1,3);
a1[0] := i1 and $ff;
a1[1] := i1 shr 8;
ShowMessage(Format('%x分%x秒',[a1[1],a1[0]]));
Delphi中longint和Integer是等价的,都是signed 32-bit这些都是基础知识,稍微思考一下就不会再问这个问题前面的例子已经给出了0X00003656的写法,不知道你有没有看注释等现成不是你这种等法