本文整理自网络,侵删。
去年的写过关于跨平台的字符串代码,发现没说明白,自己都看糊涂了。于是做了这样的测试:
procedure TForm3.Button1Click(Sender: TObject);
var
I: Integer;
s:string;
begin
s:='0123456789';
for I := 0 to s.length-1 do
begin
memo1.Lines.Add(s.Chars[i]);
end;
end;
上面的代码,分解一个字符串的每个字符,用Memo显示出来。看看win32与android下的显示结果:
再说说Delphi跨平台的字符串代码标准再说说Delphi跨平台的字符串代码标准

结果是一样一样的,说明什么呢?
如果让一套代码适应跨平台,要用String来处理字符串,同时用StringHelper或StringBuilder来辅助实现代码,并且,字符串的下标都是从0开始的。
后记:对于使用的Pos函数,用IndexOf取代。
i:=Pos(s1,s2)
改写成:
i:=s2.IndexOf(s1,0);
注意:Pos从1开始的,而IndexOf从0开始的。当查不到子串时,Pos返回是0,而IndexOf返回-1.
来源 http://blog.sina.com.cn/s/blog_44fa172f0101rtex.html
相关阅读 >>
Delphi 在xp/2k 下实现 win+ctrl+del 等键的屏蔽的方法
Delphi indy 组件包里的 idhttp 组件使用 get 方法下载文件限速的方法
Delphi 打开win8及以上操作系统的系统已安装程序目录
Delphi xe10 android安卓 移动端 messagedlg 用法
Delphi tstreamwriter tstreamreader 流操作3
Delphi winapi: getnextwindow - 获取指定窗口z上或z下的窗口的句柄
Delphiwindows 下编译 exe 文件时把一个外部 txt 文件编译到 exe 里面
更多相关阅读请进入《Delphi》频道 >>