0
我想在Delphi脚本化的基于Pascal的程序EZGPIB中将十进制字符串(范围在0到26十亿之间)转换为十六进制字符串。我似乎在互联网上找到了一段合适的代码,但在EZGPIB中无法正确实现。也许有人在帕斯卡流利可以帮助我做到这一点? EZGPIB可在谷歌上使用,无需安装。继承人的代码:EZGPIB:将十进制字符串转换为十六进制(Delphi脚本Pascal)
program hex_conv;
var
gwar:string;
function Hex(v: Longint; w: Integer): String;
var
s : String;
i : Integer;
hexc : array [0 .. 15] of Char;
begin
hexc[0] := '0';
hexc[1] := '1';
hexc[2] := '2';
hexc[3] := '3';
hexc[4] := '4';
hexc[5] := '5';
hexc[6] := '6';
hexc[7] := '7';
hexc[8] := '8';
hexc[9] := '9';
hexc[10] := 'A';
hexc[11] := 'B';
hexc[12] := 'C';
hexc[13] := 'D';
hexc[14] := 'E';
hexc[15] := 'F';
s[0] := Chr(w);
for i := w downto 1 do begin
s[i] := hexc[v and $F];
v := v shr 4
end;
Result := s;
end;
begin
EZGPIB_ScreenClear;
gwar:=hex(15,1);
EZGPIB_ScreenWriteLn(gwar);
gwar:=hex(1,1);
EZGPIB_ScreenWriteLn(gwar);
end.
的EZGPIB编译抛出RuntimeError如果我尝试编译:在停止字符串范围的 “S [0]:= CHR(W);”如果我拿走s - >“s:= Chr(w);”的方括号,那么代码将编译并为最大输入“gwar:= hex(15,1);”起作用。
工程就像一个魅力!非常感谢你! :) – Echo88