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