有人可以帮我将Delphi转换为C# [英] Could someone please help me converting Delphi to C#

查看:60
本文介绍了有人可以帮我将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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆