delphi 升级到xe7后的一些个人经验(一)...慢慢更新中

在Delphi XE7中,string默认为UnicodeString,导致中英文字符串长度计算变化。文章介绍了如何处理长度差异,包括引用AnsiStrings单元和转换为AnsiString,以及自定义GetLen函数来获取准确长度。此外,TImage控件现支持GIF和PNG,但JPEG仍需引用JPEG单元。
摘要由CSDN通过智能技术生成

一: 关于string;

   xe7中string默认的是unicodestring,所以计算一些中英文的字符串长度会出现不同,

unicodestring中每个字符已2个字节存储,长度为2,即使是英文也会填充空格弥补.

ansistring中汉子长度为2,英文为1.

比如如下代码:

var

s: string;
i: integer;
begin
  s:= edit1.Text;
 //s:= '啊是的1a';{啊和是中间有空格}
  label1.Caption:= s +'(sizeof)' + ':' + inttostr(sizeof(s));{4} 
  label2.Caption:= s +'(length)' + ':' + inttostr(length(s));{8}

end;

但如果现在是想得到他们长度为9怎么办?可以使用如下方法;

1:  引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值