有人可以帮我将Delphi转换为C# [英] Could someone please help me converting Delphi to C#
本文介绍了有人可以帮我将Delphi转换为C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以帮助我将以下函数转换为C#
Could somebody please help me to convert the following function into C#
function TAclasencode.BufToDataBIN(const Buf: TByteDynArray; iStartPos,
iLen, iDec: Integer): Variant;
const
DefaultLen = 8;
var
i : Integer;
iTmp : Int64;
arr : array[0..7]of Byte;
pInt64 : ^Int64;
fTmp : Double;
begin
fTmp := 0;
try
FillChar(arr,8,0);
if (Buf[iStartPos] and $80=$80) and (not IsCardinal) then
begin
if Negative then
begin
for I:=0 to iLen-2 do arr[I]:=(Buf[iStartPos+iLen-1-I] xor $FF);
pInt64:=@arr[0];
iTmp:=pInt64^+1;
end else
begin
for I:=0 to iLen-2 do arr[I]:=(Buf[iStartPos+iLen-1-I]);
pInt64:=@arr[0];
iTmp:=pInt64^;
end;
fTmp:=iTmp;
fTmp:=fTmp/Power(10,iDec);
fTmp:=0-fTmp;
end else
begin
for I:=0 to iLen-1 do arr[I]:=(Buf[iStartPos+iLen-1-I]);
pInt64:=@arr[0];
iTmp:=pInt64^;
fTmp:=iTmp;
fTmp:=fTmp/Power(10,iDec);
end;
finally
Result := fTmp;
end;
end;
谢谢
[edit]已添加代码块-OriginalGriff [/edit]
Thanks
[edit]Code block added - OriginalGriff[/edit]
推荐答案
80 =
80)不是 IsCardinal),然后 开始 如果为负则 开始 for I:= 0 到iLen- 2 做 arr [I]:=(Buf [iStartPos + iLen- 1 -I] xor
80) and (not IsCardinal) then begin if Negative then begin for I:=0 to iLen-2 do arr[I]:=(Buf[iStartPos+iLen-1-I] xor
FF); pInt64:= @ arr [ 0 ]; iTmp:= pInt64 ^ + 1; 结束其他 开始 for I:= 0 到iLen- 2 do arr [I]:=(Buf [iStartPos + iLen- 1 -I]); pInt64:= @ arr [ 0 ]; iTmp:= pInt64 ^; 结尾; fTmp:= iTmp; fTmp:= fTmp/Power( 10 ,iDec); fTmp:= 0 -fTmp; 结束其他 开始 for I:= 0 到iLen- 1 do arr [I]:=(Buf [iStartPos + iLen- 1 -I]); pInt64:= @ arr [ 0 ]; iTmp:= pInt64 ^; fTmp:= iTmp; fTmp:= fTmp/Power( 10 ,iDec); 结尾; 最终 结果:= fTmp; 结尾; 结束;
FF); pInt64:=@arr[0]; iTmp:=pInt64^+1; end else begin for I:=0 to iLen-2 do arr[I]:=(Buf[iStartPos+iLen-1-I]); pInt64:=@arr[0]; iTmp:=pInt64^; end; fTmp:=iTmp; fTmp:=fTmp/Power(10,iDec); fTmp:=0-fTmp; end else begin for I:=0 to iLen-1 do arr[I]:=(Buf[iStartPos+iLen-1-I]); pInt64:=@arr[0]; iTmp:=pInt64^; fTmp:=iTmp; fTmp:=fTmp/Power(10,iDec); end; finally Result := fTmp; end; end;
谢谢
[edit]已添加代码块-OriginalGriff [/edit]
Thanks
[edit]Code block added - OriginalGriff[/edit]
这篇关于有人可以帮我将Delphi转换为C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文