我在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的字符串處理。 –