You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Delphi 7中TStringList.Text的长度与预期不符?

TStringList.Text赋值后长度异常的原因解析

先看你提供的Delphi 7代码:

procedure TForm1.Button1Click(Sender: TObject);
Var
  strList: TStringList;
  strLength: String;
begin
  strList:= TStringList.Create;
  strList.Text:= 'example'; // 7 characters  
  strLength:= IntToStr(Length(strList.Text));
  Showmessage(strLength); //  9 characters
  strList.Free;
end;

问题的核心在于TStringList的Text属性有特殊的格式处理逻辑:

  • 当给strList.Text赋值字符串时,TStringList会把该字符串作为列表的第一项内容存储。
  • Text属性在返回内容时,会自动为每一行(包括最后一行)添加**回车符(#13)+换行符(#10)**的组合,这两个字符共占2个长度。

原字符串'example'本身是7个字符,加上末尾自动添加的CRLF控制字符,总长度就变成了7+2=9,这就是弹窗显示9的原因。

如果要获取原始字符串的实际长度,直接读取列表项的长度即可,比如Length(strList[0]),结果会是7。

内容的提问来源于stack exchange,提问作者user11655135

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:25:18