Особенности использования TStringList с Values и Names
В TStringsList, если ты используешь Values и Names существует удобная вещь являющаяся при этом подводным камемнем:
Когда в список передается пустое значение AnsiString(NULL) Такой ключ исключается из списка за ненадобностью. Таким образом можно обновлять только заполненные свойства. Однако размер списка, как можно догадаться, будет все время меняться и не будет соответствовать полному набору вводимых ключей, если среди них будут пустые.
TStringList *lst = new TStringList(); lst->Values["Key1"] = 0; lst->Values["Key2"] = "value 2";