Jak*_*ays 5 delphi delphi-2010
是否可以更新特定TStringList名称/值对的Name字符串?
List.Names[I]:= name;
Run Code Online (Sandbox Code Playgroud)
我知道Names是一个只读属性,我想知道是否有另一种我不知道的方式?
或者我必须对整个字符串进行整个更新
List[I]:= name=value
Run Code Online (Sandbox Code Playgroud)
问题是我在名称/值对的值部分存储了大量的字符串值
例
name=value1,value2,value3,value4,value5,value6,value7,value8,value9,value10
Run Code Online (Sandbox Code Playgroud)
我宁愿只更新名称部分9因为这就是我需要做的全部)
谢谢
您需要读取表示名称/值对的项的索引.做到这一点的调用IndexOfName().然后你修改那个项目.所以代码看起来有点像这样:
Index := List.IndexOfName(OldName);
if Index=-1 then
// handle error
List[Index] := NewName + List.NameValueSeparator + List.ValueFromIndex[Index];
Run Code Online (Sandbox Code Playgroud)
由于您使用的是支持泛型的Delphi,因此您可能会感觉更好TDictionary<string, string>.
即便如此,更改项目的名称并非易事.翻译成字典,代码如下所示:
Item := Dict.ExtractPair(OldName);
Dict.Add(NewName, Item.Value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6572 次 |
| 最近记录: |