我是写往卡里面输入数据,通过串口来实现的 
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 
请问用什么办法可以原样写入到卡里,望给与帮助和解决