Delphi XE5、6、7在Android或者IOS上使用AnsiString和AnsiChar


本文整理自网络,侵删。

 介绍

本文章介绍了Delphi XE5、6、7在Android或者IOS上使用AnsiString和AnsiChar,在移动平台上面,一般都是使用String类型来处理数据,但是很多老的代码就无法在移动上使用,因为老的String是AnsiString,为了解决这个问题,所以开发了附件中的代码,用来解决这个问题。

例如,我们使用ORawByteString来解决问题

procedure TestAnsiString(const aOutputLines: TStrings);
var
  Raw: RawByteString;
  Wide: string;
  I: Integer;
  C: PAnsiChar;
begin
  Raw := RawByteString('HEADET');
  Raw[AnsiLength(Raw)] := AnsiChar('R');//Raw = HEADER
  Wide := UTF8ToString(Raw);//convert "HEADER" from UTF-8 (ASCII) to UTF-16

  aOutputLines.Clear;
  aOutputLines.Add(Wide);//output "HEADER"

  Raw := RawByteString(Wide);//CONVERT UTF-16 back into ASCII (without any codepage)
  I := Pos('H', Raw);//Fast search in RawByteString
  Raw := AnsiCopy(Raw, I, 3);//Use fast copy on RawByteString -> Raw = "HEA"
  Wide := String(Raw);//CONVERT ASCII to UTF-16 (without any codepage)

  C := PAnsiChar(Raw);//YOU CAN EVEN USE PAnsiChar!!!
  Raw := RawByteString(C);//AND convert PAnsiChar back to RawByteString/AnsiString

  C := PAnsiChar(Raw);
  aOutputLines.Add(String(C[2]));//output "A" (the third letter from C (PAnsiChar is always 0-based)

  AnsiDelete(Raw, 1, 1);//Fast delete in RawByteString -> Raw = "EA"
  AnsiInsert(RawByteString('x'), Raw, 2);//Fast insert -> Raw = "ExA"
  Raw := UpperCase(Raw);//Fast uppercase -> Raw = "EXA"
  aOutputLines.Add(String(Raw));//output "EXA"
  Raw := LowerCase(Raw);//Fast uppercase -> Raw = "exa"
  aOutputLines.Add(String(Raw));//output "exa"
end;

通过上面的代码,我们可以发现,我们甚至可以使用PAnsiChar,在单元里可以看到一些我们以前delphi 7使用的一些对象
  AnsiString = TORawByteString;
  AnsiChar = TORawByteChar;
  RawByteString = TORawByteString;
  PAnsiChar = PORawByteChar;
  PRawByteChar = PORawByteChar;


通过这个单元就很容易将原来的代码进行移植,非常好的东西,有兴趣的可以下载下来试试。

相关阅读 >>

Delphi xe2 将域名转ip

Delphi webbrowser 滚动条的去除、边框去除

Delphi tclientdataset用法详解

Delphi unigui hyperserver

Delphixe7关于android 检测屏幕是否处于关闭状态

使用串口模拟工具进行串口程序开发调试

Delphi控制word添加多行文字

Delphi判断字符串是否为数字

Delphi数组之菜鸟篇

Delphi datasnap(midas)三层架构中,常用事件及其触发顺序

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...