[FMX]留意 XE10.1 在Android下的UnicodeString的数组起始点是0而不是1
昨天调试程序,在windows平台上正确运行的代码在安卓下却出错,因为模拟器的原因,又不能追踪进去找原因,结果找了两个多小时才查出了问题。看下面的例子:
UnicodeString s="12345678";
在windows32位程序下。
s[1]的结果是‘1‘;
s.SubString(1,8)的结果是‘12345678‘;
在安卓下
s[1]的结果是‘2‘;
s.SubString(1,8)的结果是程序运行出错,
把UnicodeString换成AnsiString,结果也一样。
原因,在windows平台,String数组的起点是从1开始,在安桌平台上,String数组的起点是从0开始。大家切记!