C++ 列表解析说明
C++ TStringsList parse explanation
我正在尝试读取值列表框中的 ini 文件。下面的示例有效,但我不知道为什么。
ReadSectionValues
包含 ini 行的字符串列表。Rad Studio 如何解析这些行:
ListValues->Names[i]
是生产线的第一部分,第二部分是ListValues->Values[ListValues->Names[i]]
?
int i;
try
{
//ShowMessage( ListBox1->Items->Strings[ListBox1->ItemIndex] );
TStringList *ListValues = new TStringList;
TIniFile* SettingsFile = new TIniFile(ExtractFilePath(Application->ExeName) + "settings.ini");
String s;
s = ListBox1->Items->Strings[ListBox1->ItemIndex];
SettingsFile->ReadSectionValues( s , ListValues);
for (i = 0; i < (ListValues->Count); i++) {
//ShowMessage(ListValues->Names[i]);
//ShowMessage(ListValues->Values[ListValues->Names[i]]);
vList1->InsertRow(ListValues->Names[i] , ListValues->Values[ListValues->Names[i]],True);
}
delete SettingsFile;
delete ListValues;
}
catch(Exception* e)
{
ShowMessage(e->Message);
}
请解释一下,拉德·斯图伊多的帮助没有找到任何解释。
void __fastcall ReadSectionValues(
const System::UnicodeString Section,
System::Classes::TStrings* Strings
)
是一个方法,它获取名称为 Section
的 ini-file 部分的所有行并将它们存储在 Tstrings-object Strings
中。请注意,这些字符串的格式为 name=value
。
类有两个访问属性"名称"和"值"。他们的解析算法非常简单。如果你得到stringsObject->Values[1]
它会从stringsObject
中获取第二行,并在=
上将其拆分为两个字符串(或stringsObject
属性NameValueSeparator
的其他值)。=
左侧的字符串(分隔符)作为名称返回(按属性 Name
),=
右侧的字符串作为值返回(按属性 Value
返回)。
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 复制列表初始化的隐式转换的等级是多少
- LNK2038、MSVS2017 MAGMA的原因列表
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 没有为自己的结构调用列表推回方法
- 使用简单类型列表实现的指数编译时间.为什么
- 一对向量构造函数:初始值设定项列表与显式构造
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 通过for循环使用用户输入填充列表
- C++:如何使函数只返回作为列表一部分的字符串
- 概念中的cv限定符需要表达式参数列表
- 下面是我为检测链接列表中的循环而制作的代码
- 建议在运行时将带有类实例的列表从c++导入qml
- 复制省略用于列表初始化,它在标准中在哪里说明?
- C++ 列表解析说明
- visualstudio2010-有没有一个列表,说明哪些编译器支持C++标准的哪一部分