首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

! 哪位高手能把 C# 代码 转换成delphi 谢谢 来着有分

2012-03-19 
十万火急 !! 谁能把 C# 代码 转换成delphi多谢 来着有分输入一个十六进制的字符串:15131313转换后,写入到

十万火急 !! 谁能把 C# 代码 转换成delphi 多谢 来着有分

输入一个十六进制的字符串:15131313
转换后,写入到串口里
public void Reprint(string hexStr, int terminalNumber)
{
byte[] tempByte = new byte[hexStr.Length / 2];
for (int i = 0; i < hexStr.Length; i += 2)
{
tempByte[i / 2] = Convert.ToByte(Convert.ToInt32(hexStr.Substring(i, 2), 16).ToString());
}
Reprint(tempByte, terminalNumber); //写入到串口里
}

[解决办法]
这个函数本身就有问题啊!
函数头中第一个参数是string类型的
函数最后一行中调用的第一个参数是Btye[]类型的
而且这个函数本身怎么会是一个递归调用呢?
[解决办法]
嘿嘿 你知道我来干嘛的
[解决办法]
路过 。。。顶一下吧有高人没
[解决办法]

Delphi(Pascal) code
 
//猜测你的意思,转化后的函数如下:
{TerminalNumber参数不知何意}
function TForm1.Reprint(HexStr: string; TerminalNumber: Integer): string;
var
i, j: Integer;
TempByte: Array of Byte;
StrTemp: string;
begin
SetLength(TempByte, Trunc(Length(HexStr) / 2));
j := 0;
Result := '';
while True do
begin
  TempByte[Trunc(j / 2)] := StrToInt(Format('$%x' ,[StrToInt(Copy(HexStr, j + 1, 2))]));
  Inc(j, 2);
  if j >= Length(HexStr) then
  begin
  for i := 1 to Length(TempByte) do
  begin
    StrTemp := StrTemp + IntToHex(TempByte[i - 1], 0);
  end;
  Result := StrTemp;
  break;
  end;
end;
end;


调用如下:
Edit2.Text := Reprint(Edit1.Text, 1);

[解决办法]
Delphi(Pascal) code
procedure Reprint(hexStr:String;terminalNumber:Integer);var  tempByte:Array of Byte;  i:Integer;begin  Setlength(tempByte,Length(hexStr) div 2);  for i:=0 to Length(hexStr)-1 div 2 do  begin    tempByte[i]:=StrtoInt64(Copy(hexStr,i*2,2));  end;end;
[解决办法]
procedure Reprint(hexStr:String;terminalNumber:Integer);
var
tempByte:Array of Byte;
i:Integer;
begin
Setlength(tempByte,Length(hexStr) div 2);
for i:=0 to Length(hexStr)-1 div 2 do
begin
tempByte[i]:=StrtoInt64('$'+Copy(hexStr,i*2,2));
end;
end;[code=Delphi(Pascal)][/code]

修改下
[解决办法]
procedure Reprint(hexStr:String;terminalNumber:Integer);
var
tempByte:Array of Byte;
i:Integer;
begin
Setlength(tempByte,Length(hexStr) div 2);
for i:=0 to (Length(hexStr div 2)-1 do
begin
tempByte[i]:=StrtoInt64('$'+Copy(hexStr,i*2,2));
end;
end;[code=Delphi(Pascal)][/code]

再次修改
[解决办法]
我要吧delphi改成c#真杯具啊!
[解决办法]
探讨
procedure Reprint(hexStr:String;terminalNumber:Integer);
var
tempByte:Array of Byte;
i:Integer;
begin
Setlength(tempByte,Length(hexStr) div 2);
for i:=0 to (Length(hexStr div 2)-1 do
……

[解决办法]
procedure Reprint(hexStr:String;terminalNumber:Integer);
var
tempByte:Array of Byte;
i:Integer;
begin
Setlength(tempByte,Length(hexStr) div 2);
for i:=0 to high(tempByte)-1 do


begin
tempByte[i]:=ord(StrtoInt(Copy(hexStr,i*2,2)));
end;
end
[解决办法]
好久没有来过了。

热点排行