5,939
社区成员
发帖
与我相关
我的任务
分享
function HexCharToInt(HexToken: char): integer;
begin
if HexToken > #97 then
HexToken := Chr(Ord(HexToken) - 32);
Result := 0;
if (HexToken > #47) and (HexToken < #58) then { chars 0....9 }
Result := Ord(HexToken) - 48
else if (HexToken > #64) and (HexToken < #71) then { chars A....F }
Result := Ord(HexToken) - 65 + 10;
end;
function Ncf(num, f: integer): integer;
var
i: integer;
begin
Result := 1;
if f = 0 then exit;
for i := 1 to f do begin
result := result * num;
end;
end;
function HexToInt(hex: string): integer;
var
i: integer;
begin
result := 0;
hex := AnsiUpperCase(Trim(hex));
if hex = '' then
exit;
for i := 1 to length(hex) do
result := result + HexCharToInt(hex[i]) * Ncf(16, length(hex) - i);
end;
function TransEx(Msg: string): string;
var
i: integer;
Str: string;
begin
i := 1;
Str := '';
while i < length(Msg) do begin
Str := Msg[i] + Msg[i+1]+ Str ;
i := i + 2;
end;
result := Str;
end;
//读卡
procedure BtnReadClick(Sender: TObject);
var HexSnr, TransHexSnr: String;
icdev, snr, i: longint;//icdev设备ID,snr卡序列号,i转换后的卡号
begin
rf_Card(icdev, 1, snr); //读取卡序列号到snr
//转换卡序列号
HexSnr:=Format('%x', [snr]);
TransHexSnr:=TransEx(HexSnr);
i:=HexToInt(TransHexSnr);
end;