dini: 如何 return 键,而不是键值?
dini: how to return key, but not key value?
我需要 return 键列表,但下一个代码 return 我只需要键值。
string confpath = buildPath(getcwd, "config.ini");
if (!exists(confpath)) throw new Exception("ERROR: config.ini do not exists");
auto config = Ini.Parse(confpath);
foreach (key; config.keys())
{
writeln(key);
}
config.ini:
images = C:\images
photos = D:\photos
pictures = E:\stuff\pictures
预期输出:
images
photos
pictures
代码输出:
C:\images
D:\photos
E:\stuff\pictures
我查看了 sources,但没有找到我可以 return 只有键的地方。
在dini中,keys 属性 returns _keys关联数组,这是一个
字符串[字符串].
所以你的 foreach 应该是:
foreach (key, value; config.keys())
{
writeln(key);
}
或者,您可以调用关联数组键 属性 以仅获取键。
编辑:
IMO,这里的命名有点混乱。我个人会调用 dini 的 keys 函数 "asMap" 或类似的东西,很明显你会得到 keys=values.
的映射
如果您使用我的 ini 包装器,您可以 return 通过来自 IniSection 的 .keys 的键。 IMO "dini" 不是很好,它提供了一个 "non-userfriendly" inifile 包装器。此外,它不遵循 IMO ini 包装器绝对应该遵循的 SafeD,因为您不需要指针来解析文本格式。
例如
auto keys = ini.getSection("Root").keys;
或 .values 为值。
你可以在这里得到它:
https://github.com/BaussProjects/baussini/
我需要 return 键列表,但下一个代码 return 我只需要键值。
string confpath = buildPath(getcwd, "config.ini");
if (!exists(confpath)) throw new Exception("ERROR: config.ini do not exists");
auto config = Ini.Parse(confpath);
foreach (key; config.keys())
{
writeln(key);
}
config.ini:
images = C:\images
photos = D:\photos
pictures = E:\stuff\pictures
预期输出:
images
photos
pictures
代码输出:
C:\images
D:\photos
E:\stuff\pictures
我查看了 sources,但没有找到我可以 return 只有键的地方。
在dini中,keys 属性 returns _keys关联数组,这是一个 字符串[字符串].
所以你的 foreach 应该是:
foreach (key, value; config.keys())
{
writeln(key);
}
或者,您可以调用关联数组键 属性 以仅获取键。
编辑: IMO,这里的命名有点混乱。我个人会调用 dini 的 keys 函数 "asMap" 或类似的东西,很明显你会得到 keys=values.
的映射如果您使用我的 ini 包装器,您可以 return 通过来自 IniSection 的 .keys 的键。 IMO "dini" 不是很好,它提供了一个 "non-userfriendly" inifile 包装器。此外,它不遵循 IMO ini 包装器绝对应该遵循的 SafeD,因为您不需要指针来解析文本格式。
例如
auto keys = ini.getSection("Root").keys;
或 .values 为值。
你可以在这里得到它: https://github.com/BaussProjects/baussini/