Allegro 5 循环遍历具有相同名称的配置文件值
Allegro 5 loop through config file values with the same name
我有一个存储地图的配置文件
name=map1
width=5
height=5
[tiles]
l=0,0,1,0,0
l=0,1,1,1,0
l=0,1,0,1,0
l=0,1,0,1,0
l=0,0,0,0,0
[/tiles]
我如何遍历 [tiles] 部分以将他的 lines(l) 值存储到我的向量中?
注意:我放了allegro5标签是因为它有加载配置文件的功能。
我在阅读 allegro5 参考资料并反复尝试和尝试之后找到了一个方法,所以我自己的问题有了答案:
首先 [tiles] 部分的条目可能有不同的名称,例如:
[tiles]
a=0,0,1,0,0
b=0,1,1,1,0
c=0,1,0,1,0
d=0,1,0,1,0
e=0,0,0,0,0
[/tiles]
那么代码是:
ALLEGRO_CONFIG*config_file=al_load_config_file("example.map");
vector<const char*>lines
ALLEGRO_CONFIG_ENTRY** entry_iterator;
const char* entry;
entry=al_get_first_config_entry(config_file, "tiles", entry_iterator);
while((entry=al_get_next_config_entry(entry_iterator))!=NULL){
lines.push_back(al_get_config_value(config_file, "tiles", entry));
};
正如您所发现的,Allegro 只会采用最后一个条目
用同样的钥匙。虽然你可以给每一行一个不同的键,但你可以
而是利用 =
赋值是可选的这一事实:
[tiles]
0,0,1,0,0
0,1,1,1,0
0,1,0,1,0
0,1,0,1,0
0,0,0,0,0
[/tiles]
现在每一行的数据都存储在 'key' 本身,而 'value' 是
忽略。
int main() {
ALLEGRO_CONFIG *cfg;
ALLEGRO_CONFIG_ENTRY *entry;
const char* row;
al_init();
cfg = al_load_config_file("config.cfg");
row = al_get_first_config_entry(cfg, "tiles", &entry);
while (entry) {
printf("%s\n", row);
row = al_get_next_config_entry(&entry);
}
return 0;
}
我有一个存储地图的配置文件
name=map1
width=5
height=5
[tiles]
l=0,0,1,0,0
l=0,1,1,1,0
l=0,1,0,1,0
l=0,1,0,1,0
l=0,0,0,0,0
[/tiles]
我如何遍历 [tiles] 部分以将他的 lines(l) 值存储到我的向量中?
注意:我放了allegro5标签是因为它有加载配置文件的功能。
我在阅读 allegro5 参考资料并反复尝试和尝试之后找到了一个方法,所以我自己的问题有了答案:
首先 [tiles] 部分的条目可能有不同的名称,例如:
[tiles]
a=0,0,1,0,0
b=0,1,1,1,0
c=0,1,0,1,0
d=0,1,0,1,0
e=0,0,0,0,0
[/tiles]
那么代码是:
ALLEGRO_CONFIG*config_file=al_load_config_file("example.map");
vector<const char*>lines
ALLEGRO_CONFIG_ENTRY** entry_iterator;
const char* entry;
entry=al_get_first_config_entry(config_file, "tiles", entry_iterator);
while((entry=al_get_next_config_entry(entry_iterator))!=NULL){
lines.push_back(al_get_config_value(config_file, "tiles", entry));
};
正如您所发现的,Allegro 只会采用最后一个条目
用同样的钥匙。虽然你可以给每一行一个不同的键,但你可以
而是利用 =
赋值是可选的这一事实:
[tiles]
0,0,1,0,0
0,1,1,1,0
0,1,0,1,0
0,1,0,1,0
0,0,0,0,0
[/tiles]
现在每一行的数据都存储在 'key' 本身,而 'value' 是 忽略。
int main() {
ALLEGRO_CONFIG *cfg;
ALLEGRO_CONFIG_ENTRY *entry;
const char* row;
al_init();
cfg = al_load_config_file("config.cfg");
row = al_get_first_config_entry(cfg, "tiles", &entry);
while (entry) {
printf("%s\n", row);
row = al_get_next_config_entry(&entry);
}
return 0;
}