打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
XE7下使用AnsiString,在Android运作,下标竟然是0开始的

XE7下使用AnsiString,在Android运作,下标竟然是0开始的

www.MyException.Cn  网友分享于:2015-10-07  浏览:0次
XE7下使用AnsiString,在Android运行,下标竟然是0开始的
在做一个WIFI读取Arduino的DTH11温湿度实验,Arduino回传的是以“,”分割的字串,同样的截取“,”分割内容的代码,在win32上没问题,但是放到Android下,就是出问题,没有结果,最后发现,AnsiString在Android下,第一个起始字符的下标,竟然是0,例如
“12,3”
AnsiString的Pos方法取“,”,win32下得到的位置是3,Android下运行,得到的是2

哎,坑啊,我只会玩BCB。

希望大家遇到了能有帮助,散分。
------解决思路----------------------
哦,我来试试
------解决思路----------------------
从 XE5 开始,C++Builder/Delphi 中字符串相关的很多方法都提供了0下标和1下标两个版本,如 Pos, Delete, SubString 等等,都有相应的 Pos0/Pos1, Delete0/Delete1, SubString0/SubString1 等函数,当然默认的方法也存在,如 Pos, Delete, SubString... ,只是根据是否定义了 _DELPHI_STRING_ONE_BASED 而决定使用哪个方法:
    int Pos(const UnicodeString& subStr) const _ALWAYS_INLINE {
#if defined(_DELPHI_STRING_ONE_BASED)
      return Pos1(subStr);
#else
      return Pos0(subStr);
#endif
    }

这一点和 Windows 中 TCHAR 类的数据/方法等有点类似。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Delphi XE 11.1下创建签名文件
Delphi XE5 for Android (一)
delphi xe6 android ListView增加 Header或Footer 的方法
Delphi XE5记录Android应用程序(日志输出)
[转载]Delphi中String与PAnsiChar转换
string(字符串)类常用成员
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服