为何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
相关产品推荐
相关产品推荐

