加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – TStringHelper没有返回正确的结果

发布时间:2020-12-15 09:42:12 所属栏目:大数据 来源:网络整理
导读:我在Win32应用程序中使用TStringHelper,但是当我尝试访问特定的char或获取子字符串时返回的值不一样如果我使用等效的旧字符串函数. {$APPTYPE CONSOLE}{$R *.res}uses System.SysUtils;var i : Integer; s : string;begin try i:=12345678; Writeln(i.ToStri
我在Win32应用程序中使用TStringHelper,但是当我尝试访问特定的char或获取子字符串时返回的值不一样如果我使用等效的旧字符串函数.

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
  i : Integer;
  s : string;
begin
  try
    i:=12345678;
    Writeln(i.ToString().Chars[1]);  // returns 2
    Writeln(i.ToString().Substring(1)); //returns 2345678

    s:=IntToStr(i);
    Writeln(s[1]); //returns 1
    Writeln(Copy(s,1,Length(s)));//returns 12345678
  except
    on E: Exception do
      Writeln(E.ClassName,': ',E.Message);
  end;
  Readln;
end.

问题是为什么TStringHelper函数不等同于旧的字符串函数?

解决方法

这是因为System.SysUtils.TStringHelper的所有方法和属性都是基于零的索引,这个帮助程序是使用 {$ZEROBASEDSTRINGS ON}指令编译的.您可以在 System.SysUtils.TStringHelper文档中找到更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读