SMS 解析中遇到奇怪问题,$ 无法解析,求教高手 !(200)

  • 主题发起人 xuhongxinghome
  • 开始时间
X

xuhongxinghome

Unregistered / Unconfirmed
GUEST, unregistred user!
这是在超级终端中操作的:---------------------------------------AT+CSCS="PCCP437"OKAT+CMGF=0OKAT+CMGR=4+CMGR: 1,,240891683108401105F0040D91683105706948F10000016070909422230402814000OKAT+CMGF=1OKAT+CMGR=4+CMGR: "REC READ","+8613500796841",,"10/06/07,09:49:22+32"$$$$OK---------------------------------------02814000 应该是 $$$$ 为什么 PDU 方式下用 DECODEENGLISH 解析不出来,变成 ┐┐┐┐本来吗用文本方式可以读出来,不出错也就算了,但最近搞到一个华为的3G猫,USB 口,不用电源,和市场上普通的 GPRS 猫的功能差别不大,目前能看到的就是在文本下,长短信的标识不算作用户数据了,少了4个字节,收到的长短信就被分成N个了,没有办法,只好重新审视 DECODEENGLISH 函数是否有问题,测试了N 天,没有收获,只好求救 ...附:function DecodeEnglish(s:String):String;var i,j,len:Integer; TempIntArray:Array of Integer; TempStr:String; cur,Int1:Integer;begin len:=Length(s) div 2; SetLength(TempIntArray,Len); for i:=0 to Len-1 do begin TempStr:=Copy(s,i*2+1,2); TempIntArray:=HexToInt(TempStr); end; //j 用于移位计数 i:=0; j:=0; while i<=len-1 do begin if i<>0 then //数据变换 cur:=((TempIntArray shl j) and $7f) or (TempIntArray[i-1] shr (8-j)) else cur:=(TempIntArray shl j) and $7f; Result:=Result+Chr(cur); //移位计数达到7位的特别处理 j:=(j+1) mod 7; if j=0 then begin cur:=TempIntArray shr 1; Result:=Result+Chr(cur); end; inc(i); end;end;
 
咋了,这是?
 

Similar threads

顶部