• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi字符类转换集《转》

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、string转为ansistring
1、直接赋值 (有警告)
2、ansistring()类型强制转换。(无警告)

二、ansistring 转为string

1、直接赋值 (有警告)
2、string()类型强制转换。(无警告)

三、string 转为Tbytes

1、bytes:= bytesof(str) 已转为ansi编码
2、bytes:= widebytesof(str) UNICODE 编码

四、ansistring 转为Tbytes

1、bytes:= bytesof(str) ansi编码
2、bytes:= widebytesof(string(str)) UNICODE 编码

五、Tbytes 转为string

1、 str:=stringof(bytes) Tbytes 为ansi编码
2、 str:=widestringof(bytes) Tbytes 为unicode编码

六、PChar转String

用StrPas函数,StrPas(PChar):AnsiString;



设有以下三个变量: 

var 
s:string; 
p:pchar; 
a:array[1..20] of char; 
那么三者之间的转换如下: 
1、字符串到PChar 
    p:=PChar(s); 
2、PChar到字符串 
    s:=p; 
3、PChar到字符数组 
    StrCopy(@a,p); 
4、字符数组到PChar 
    PChar(@a); 
5、字符串与字符数组之间的转换就只有通过PChar来中转了。例如下面这个例子: 
procedure TForm1.btn1Click(Sender: TObject); 
var 
str:array[1..10] of char; 
begin 
StrCopy(@str,PChar(mmo1.Text)); 
mmo2.Text:=PChar(@str); 
end;

以下是本人自己编写发送短信的一段代码,实现字符串转UTF8编码

  //SMS
  if IsPhoen(edtTEL.Text) then
    begin
      SysconfigRun;
      if Sysconfig.ReadBool('SMS','AddingSend',False) then
        begin
          if Sysconfig.ReadInteger('SMS','AddingMode',0) = 0 then
            begin
               if MessageBox(Handle, PChar('是否发送短信?                                         '),
               PChar('短信'), MB_ICONINFORMATION or MB_YESNO or MB_DEFBUTTON1) = IDYES then
                 begin
                   goto GoToS;
                 end;
            end
          else
            begin
              GoToS :
              Params := TStringList.Create;
              IDHTTP1 := TIdHTTP.Create(nil);
              reg := TPerlRegEx.Create;
              Params.Add('ac='+trim(Sysconfig.ReadString('SMS','SMSA','')));
              Params.Add('authkey='+trim(Sysconfig.ReadString('SMS','SMSP','')));
              Params.Add('m='+trim(edtTEL.Text));
              Params.Add('action=sendOnce');
              Params.Add('cgid='+trim(Sysconfig.ReadString('SMS','CGID','')));

              Params.Add('csid='+trim(Sysconfig.ReadString('SMS','CSID','')));
              Params.Add('c='+Utf8ToAnsi(UTF8Encode(Matching(edtTID.Text,edtUserName.Text,edt2.Text,trim(Sysconfig.ReadString('SMS','AddingInfo',DateTimeToStr(Now)))))));
              if Sysconfig.ReadString('SMS','AddingInfo','') <> '' then
                begin
                  WriteLog(IDHTTP1.Post('http://smsapi.c123.cn/OpenPlatform/OpenApi', Params));
                end;
              FreeAndNil(IDHTTP1);
              FreeAndNil(Params);
              FreeAndNil(reg);
            end;
        end;
      Sysconfig.Destroy;
    end;

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB和origin用三列数据画三维图发布时间:2022-07-18
下一篇:
MATLAB报错:未定义函数或变量解决方案发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap