我是写往卡里面输入数据,通过串口来实现的
Function EKaiHuC(icdev:integer;varuserno:pchar; ):longint;stdcall; //kaihu
var
setuserno:string;
buyenergdata:array [0..10] of byte;
begin
if icdev <=0 then
begin
result:=10; //showmessage( '初始化失败 ');
exit;
end;
strrnd:=cardpwdrnd; //新密码
setlength(buyenergdata,27);
setuserno := Etc(userno,5);//通过补位函数得到
buyenergdata[0] := $68;
buyenergdata[1] := $01;
buyenergdata[2] := $23;
buyenergdata[3] := strtoint(Etc1(setuserno, 1, 2));//Etc1取字符串
buyenergdata[4] := strtoint(Etc1(setuserno, 3, 2));
buyenergdata[5] := strtoint(Etc1(setuserno, 5, 2));
buyenergdata[6] := strtoint(Etc1(setuserno, 7, 2));
buyenergdata[7] := strtoint(Etc1(setuserno, 9, 2));
buyenergdata[8] := $01;
buyenergdata[9] :=$16;
If kaishi(icdev, 20, 30,pchar(buyenergdata)) < > 0 Then
begin
result:=12;
Exit;
End;
result:=15;
end;
现在出现的问题是把这些数据写到卡里面和原定的协议有差别
例如:我要输入字符串:123456,存到卡里面应该是保持原样,读卡是十六进制显示的,应该显示68 01 23 00 00 12 34 56 01 16,但是现在显示68 01 23 30 00 0c 22 38 01 16
请问用什么办法可以原样写入到卡里,望给与帮助和解决
Function EKaiHuC(icdev:integer;varuserno:pchar; ):longint;stdcall; //kaihu
var
setuserno:string;
buyenergdata:array [0..10] of byte;
begin
if icdev <=0 then
begin
result:=10; //showmessage( '初始化失败 ');
exit;
end;
strrnd:=cardpwdrnd; //新密码
setlength(buyenergdata,27);
setuserno := Etc(userno,5);//通过补位函数得到
buyenergdata[0] := $68;
buyenergdata[1] := $01;
buyenergdata[2] := $23;
buyenergdata[3] := strtoint(Etc1(setuserno, 1, 2));//Etc1取字符串
buyenergdata[4] := strtoint(Etc1(setuserno, 3, 2));
buyenergdata[5] := strtoint(Etc1(setuserno, 5, 2));
buyenergdata[6] := strtoint(Etc1(setuserno, 7, 2));
buyenergdata[7] := strtoint(Etc1(setuserno, 9, 2));
buyenergdata[8] := $01;
buyenergdata[9] :=$16;
If kaishi(icdev, 20, 30,pchar(buyenergdata)) < > 0 Then
begin
result:=12;
Exit;
End;
result:=15;
end;
现在出现的问题是把这些数据写到卡里面和原定的协议有差别
例如:我要输入字符串:123456,存到卡里面应该是保持原样,读卡是十六进制显示的,应该显示68 01 23 00 00 12 34 56 01 16,但是现在显示68 01 23 30 00 0c 22 38 01 16
请问用什么办法可以原样写入到卡里,望给与帮助和解决
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货