`
Jack Wu
  • 浏览: 891833 次
  • 来自: ...
社区版块
存档分类
最新评论

关于SMS编码Delphi源码摘抄

阅读更多

1.英文编码
function Encode7bit(Src:String):String;
var Dst:String;
    i:Integer;
    CurS,NextS:Byte;
    TStr:String;
begin
  for i:=1 to Length(Src) do begin
    //当前是字符按8位分组的第8位,无需编码(8个字符已缩短为7个)
    if (i mod 8)=0 then Continue;
   
    //取当前位为数字
    TStr:=Copy(Src,i,1);
    CurS:=Ord(TStr[1]);

    //当前右移位组中的第一个字符不移位
    if (i mod 8)>1 then
      CurS:=(CurS shr ((i mod 8)-1) );

    //取后一位为数字如果到了字符的结束,不取
    if i<Length(Src) then begin
      TStr:=Copy(Src,i+1,1);
      NextS:=Ord(TStr[1]);
    end else
      NextS:=0;
    //后一位移位 左移
    NextS:=(NextS shl (8-(i mod 8)));

    //当前移位后加后一位移位后  转换成为十六进制
    Dst:=Dst+IntToHex(CurS+NextS,2);
  end;
  Result:=Dst;
end;

2、英文解码
function Decode7bit(Src:String):String;
var Dst:String;
    i:Integer;
    CurS,ProiS:Byte;
begin
  for i:=1 to (Length(Src) div 2) do begin
    //将当前位的十六进制转换为十进制
    CurS:=StrToInt('$'+Copy(Src,(i-1)*2+1,2)); //32->50
    //取前一位十六进制转换为十进制
    if (i mod 7)<>1 then
      ProiS:=StrToInt('$'+Copy(Src,(i-2)*2+1,2)) //C8->200
    else
      ProiS:=0;
    //前一位右移,即将当前字符前移的位取出来
    if (i mod 7)>0 then
      ProiS:=(ProiS shr (9-(i mod 7)))
    else
      ProiS:=(ProiS shr 2);
    //当前位左移除掉高位
    if (i mod 7)>0 then
      CurS:=(CurS shl (i mod 7) )
    else
      CurS:=(CurS shl 7 );
    //将第八位设置为0
    CurS:=(CurS shr 1);
    Dst:=Dst+Chr(CurS+ProiS);
    //第七个十六进制内已包含有一个完整的字符
    if (i mod 7)=0 then begin
      CurS:=StrToInt('$'+Copy(Src,(i-1)*2+1,2)); //32->50
      CurS:=(CurS shr 1);
      Dst:=Dst+Chr(CurS);
    end;
  end;//en for
  Result:=Dst;
end;

3.中文编码
function CnToUSC(var s:WideString):String; 
var
  i,len:Integer;
  cur:Integer;
  t:String;
begin
  Result:= '';
  len:=Length(s);
  i:=1;
  while i<=len do
  begin
    cur:=ord(s[i]);
    //BCD转换
    FmtStr(t,'%4.4X',[cur]); 
    Result:=Result+t;
    inc(i);
  end;
end; 
 


4、PDU解码
function TForm1.DecodeChinese(SRC: String): string; //中文解码
var
  i:Integer;
  S:String;
  D:WideChar;
  ResultW:WideString;
begin
  for i:=1 to Round(Length(Src)/4) do
  begin
    S:=Copy(Src,(i-1)*4+1,4);
    D:=WideChar(StrToInt('$'+s)); //此处是重点,用delphi提供的widechar可以转换
   ResultW:=ResultW+D;
  end;
  Result:=ResultW;
end;



分享到:
评论

相关推荐

    SMS.rar_ Sms delphi _SMS delphi_delphi sms_sms_消息

    标题中的"SMS.rar_ Sms delphi _SMS delphi_delphi sms_sms_消息"表明这是一个关于使用Delphi编程语言开发的SMS(短消息服务)应用程序。Delphi是一种基于对象的、面向对象的 Pascal 编程语言,它以其高效的编译器和...

    sms.rar_SMS delphi_delphi sms_sms_短信 delphi

    标签“sms_delphi delphi_sms sms 短信_delphi”进一步强调了这是关于使用Delphi进行短信相关开发的内容。在Delphi中,实现短信发送功能通常涉及与SMS网关或者短信服务提供商的API进行交互,可能包括HTTP请求、SMTP...

    短信猫Delphi源码

    【短信猫Delphi源码】是一个使用Delphi编程语言编写的短信发送软件开发包,它主要依赖于DLL(动态链接库)技术实现短信收发功能。这个源码提供了一个直观的示例,使得开发者能够更好地理解和应用短信猫硬件设备进行...

    sms.rar_ Sms delphi _SMS delphi_delphi sms_delphi 开发短信_delphi 短信

    1. **Wmod2接口定义.doc**:这可能是关于WModem模块的接口定义,允许Delphi应用程序通过调制解调器发送和接收短信。WModem是模拟调制解调器的软件模拟,对于那些没有物理调制解调器但仍然需要通过电话线发送短信的...

    sms_SMS delphi_delphi package_sms_sms.rar

    “Torry SMS”可能是指Torry's Delphi Pages,这是一个著名的Delphi资源网站,开发者可以在其中找到各种免费和付费的Delphi组件、源码以及教程。在这个压缩包里,"www.pudn.com.txt"可能是一个链接或说明文件,指向...

    最新SMS测压SMS源码 全新版本

    php调至7.3 设置伪静态为thinkphp 设置网站运行目录为public 编辑根目录下的.env文件配置数据库信息 详细教程请看源码内置说明文本!

    SMS短信客户端源码

    【标题】"SMS短信客户端源码"涉及到的关键技术与知识点主要集中在MFC、SMS协议、Socket编程以及VC++上。以下是对这些领域的详细介绍: 1. MFC(Microsoft Foundation Classes): MFC是微软提供的一套C++类库,...

    cmpp协议短信网关Delphi源码.rar_DELPHI短信_cmpp delphi_delphi 开发短信_sms

    这个Delphi源码实现的CMPP短信网关可能包含了以下核心功能: 1. **连接管理**:建立和维护与SMSC的TCP连接,确保数据传输的稳定性和可靠性。 2. **协议解析**:实现CMPP协议的编码和解码,包括CMPP_SUBMIT(提交...

    收发短消息的DELPHI源码

    综上所述,收发短消息的DELPHI源码涉及了串口通信、AT命令控制、短信编码、错误处理、用户界面设计、多线程编程等多个知识点。通过学习和理解这些概念,开发者可以创建自己的短信应用,不仅限于DELPHI,其他编程语言...

    手机管理delphi源码

    本项目名为“手机管理delphi源码”,它允许用户通过个人计算机(PC)来管理手机上的联系人、短信等功能。下面我们将深入探讨这一项目的实现细节和技术要点。 首先,我们来看项目的核心功能。手机地址本管理是该项目...

    sms.rar_delphi sms_delphi7_sms_sms delphi pudn

    Delphi写的短信猫程序,可用来收发短信的程序,没有使用任何第三方控件,用Delphi7可直接编译运行。程序运行前请确定端口是否被占用。自带了Access数据库。

    短信猫 sms dll 源码

    2. **sms_code.cpp**:此文件可能涉及到短信编码和解码的实现,比如GSM 7位编码、UCS2编码等,这些都是短信通信中必备的环节,确保短信内容能在不同系统间正确传输。 3. **StdAfx.cpp**:这是预编译头文件,通常...

    SMS.rar_SMS delphi_sms

    6. "SMS.dproj"是Delphi项目文件,保存了关于项目的配置信息,包括编译设置、依赖项等。 7. "sms.ico"是程序的图标文件,显示在程序窗口和任务栏上。 8. "SMS.identcache"可能是Delphi的标识符缓存文件,用于提高...

    sms.rar_SMS delphi_computer_delphi

    标题中的“sms.rar_SMS delphi_computer_delphi”暗示了这是一个使用Delphi编程语言开发的电脑端短信发送软件的相关源代码。Delphi是一款强大的Windows应用开发工具,它基于Object Pascal编程语言,以其高效的编译器...

    手机信息(红外线通信)delphi源码

    由于压缩包内的文件名称列表只给出了"200621520178378",这可能是一个唯一的文件名或者一个编码,无法直接提供关于源码的具体内容。通常,一个完整的Delphi项目可能包含.dpr(项目文件)、.pas(Pascal源码文件)、....

    SM_Msg.rar_SMS delphi_delphi 手机短信_msg_sms

    "SM_Msg.rar_SMS delphi_delphi 手机短信_msg_sms" 这个标题提到了几个关键元素,首先"SM_Msg.rar" 是一个压缩文件的名称,暗示了它包含一个与短信(SMS)相关的程序或库。"SMS delphi" 指出这个程序是使用 Delphi ...

    SMS(C#开发源码)

    本文将详细解析"SMS(C#开发源码)"这一主题,包括GPRS通信、串口调用以及C#编程语言在实现短信服务(SMS)中的应用。 首先,"SMS"即Short Message Service,短信服务,是一种通过移动通信网络发送短文本信息的技术。在...

    sms_PDUtogbk.rar_GBK_PDU_SMS_delphi 串口_pdu_sms转换网址

    PDU编码是SMS消息在传输过程中的一种二进制表示,它包含了短信的全部信息,如发送者、接收者号码、短信类型、数据编码等。这种编码方式使得短信能够在不同的网络和设备间无误地传输。在开发过程中,我们需要将用户的...

    sms短信平台源码(webForm)

    适用于大中小型企业、商场、酒店等,面向企事业单位开发的短信收发系统。 主要提供短信网关,短信接口, 网站接口以及 OA 、 CRM 、 ERP 、 SCM 、等系统及B2B大型网站平台使用。 接入方式可灵活使用,24小时发送,多...

    3G SMS编码规范27005-700sms

    《3G SMS编码规范27005-700sms》详解 SMS(Short Message Service,短信服务)是移动通信领域中一种基础且广泛使用的通信方式。在3G网络中,SMS编码规范27005-700sms为短信的传输设定了统一的标准,确保了不同运营...

Global site tag (gtag.js) - Google Analytics