我在Win32应用程序中使用,但是当我尝试访问特定字符或获取子字符串时,返回的值不相同如果我使用等效的旧字符串函数。TStringHelper没有返回正确的结果
{$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函数不等于旧的字符串函数?
首先引入'TStringHelper'的全部原因是在不破坏现有代码的向后兼容性的情况下创建基于0的字符串操作。英巴卡迪诺正试图缓慢地将RTL转向基于0的字符串处理。 –