c++ - 选择和处理以给定字符串开头的 INI 文件部分
问题描述
我正在使用内置函数 ReadSections() 从 Ini 文件中读取部分。所以为此我必须将部分名称作为参数传递,但现在我想读取从 ADD.EXE 开始的所有部分,我该怎么做?会有多个部分,如 ADD.EXE_NEW、ADD.EXE_OLD、ADD.EXE_First、SEC.EXE、THIRD.EXE,所以我只想阅读名称以 ADD.EXE 开头的部分
unique_ptr<TDataIniFile> UserIni(new TDataIniFile(File));
if (UserIni->ReadSections("ADD.EXE")
解决方案
ReadSections()
获取一个TStrings*
指向您创建的字符串列表对象的指针,然后它将使用 INI 中的部分名称填充,例如:
std::unique_ptr<TStringList> sections(new TStringList);
std::unique_ptr<TDataIniFile> UserIni(new TDataIniFile(File));
UserIni->ReadSections(sections.get());
然后,您可以根据需要枚举该字符串列表,例如:
for(int i = 0; i < sections->Count; ++i)
{
String section = sections->Strings[i];
if (StartsText(_D("ADD.EXE"), section))
{
// read values for section from UserIni as needed...
}
}
或者:
// standard range-for doesn't work with TStringList, but
// std::for_each() does via iterators from non-member
// begin()/end() functions found via ADL...
//for(String section : *sections)
std::for_each(begin(sections.get()), end(sections.get()),
[&](const String §ion)
{
if (StartsText(_D("ADD.EXE"), section))
{
// read values for section from UserIni as needed...
}
}
);
推荐阅读
- python - Python 为所有类提供了一个记录器
- javascript - 当 react 组件第一次打开时,它会看到 js 文件。打开时看不到
- javascript - 在 for 循环中执行 cy.request
- java - 与数据库的连接给了我一个错误,但程序继续工作
- powershell - Powershell 变量以 @ 开头并以 @ 结尾
- spartacus-storefront - 有没有办法,我们可以在通过 SmartEdit 访问时禁用 Spartacus 中的受保护路由?
- sql - Postgres:在另一个选择的结果上选择 min/max ...
- javascript - 从 react-redux 前端应用程序登录时出现 404(找不到页面)
- firebase - Android 应用程序在 Firebase 验证码验证后关闭
- python - 到 Traci 的简单 python 连接