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

C++Builder从TStringList获取字符串:编译报错与取值为空问题排查

C++Builder中TStringList元素访问的正确方式

你遇到的两个问题都是C++Builder与Delphi的VCL类语法差异导致的,具体原因和解决方法如下:

  • 关于psl[i]无法编译:
    Delphi支持直接用数组下标[]访问TStringList元素,但C++Builder的TStringList没有重载该运算符,必须通过Strings属性按索引访问元素,正确写法为psl->Strings[i]。

  • 关于psl->Values[i]返回空字符串:
    Values属性的作用是通过键名获取对应键值,仅当TStringList中的元素是"Key=Value"格式的键值对时才生效。你当前的列表仅包含普通字符串,没有键值结构,用数字索引作为键名自然无法匹配到对应值,因此返回空。若要按索引访问普通字符串元素,同样使用Strings属性。

修正后的代码示例:

TStringList *psl = new TStringList;
psl->Add(_D("String1"));
psl->Add(_D("String2"));

for (UINT i = 0; i < psl->Count; i++) {
  String s = psl->Strings[i]; // 正确访问索引i的元素
  // 若要使用Values,需先添加键值对格式元素,示例:
  // psl->Add(_D("Key1=Value1"));
  // String sv = psl->Values[_D("Key1")]; // 通过键名获取对应值
}

delete psl; // 记得释放内存,避免内存泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:50:00