Hace dos días me di a la tarea de implementar el soporte para xml en el proyecto. Para ello escogí TinyXml, que es muy fácil de integrar pues como no es una biblioteca sólo tienes que incluir algunos archivos y ya está.
De momento, la configuración del cliente (servidor al que se conecta y resolución de pantalla) se lee desde un xml. El archivo en cuestión es el siguiente:
< ip="192.168.1.1">< /server>
< x="800" y="600" bpp="32">Screen resolution< /screen>
Y se parsea con un código tan sencillo como este:
TiXmlDocument conf;
if (!conf.LoadFile("metalclient.xml")) {
//hubo algun problema
printf("Error loading config file.\n");
}
TiXmlHandle chandle(&conf);
TiXmlElement *cvalue=chandle.FirstChild("screen").Element();
if (cvalue->QueryIntAttribute("x",&Width)!=TIXML_SUCCESS) {
printf("Problem loading config value screen, check config file.\n");
} else printf("Width %i",Width);
if (cvalue->QueryIntAttribute("y",&Height)!=TIXML_SUCCESS) {
printf("Problem loading config value screen, check config file.\n");
} else printf("Height %i",Height);
cvalue=chandle.FirstChild("server").Element();
if (cvalue) {
//tenemos un valor
printf("server %s ip es %s\n",cvalue->GetText(), cvalue->Attribute("ip"));
}
Sencillo ¿verdad?
Tags: programacion, juegos
De momento, la configuración del cliente (servidor al que se conecta y resolución de pantalla) se lee desde un xml. El archivo en cuestión es el siguiente:
< ip="192.168.1.1">< /server>
< x="800" y="600" bpp="32">Screen resolution< /screen>
Y se parsea con un código tan sencillo como este:
TiXmlDocument conf;
if (!conf.LoadFile("metalclient.xml")) {
//hubo algun problema
printf("Error loading config file.\n");
}
TiXmlHandle chandle(&conf);
TiXmlElement *cvalue=chandle.FirstChild("screen").Element();
if (cvalue->QueryIntAttribute("x",&Width)!=TIXML_SUCCESS) {
printf("Problem loading config value screen, check config file.\n");
} else printf("Width %i",Width);
if (cvalue->QueryIntAttribute("y",&Height)!=TIXML_SUCCESS) {
printf("Problem loading config value screen, check config file.\n");
} else printf("Height %i",Height);
cvalue=chandle.FirstChild("server").Element();
if (cvalue) {
//tenemos un valor
printf("server %s ip es %s\n",cvalue->GetText(), cvalue->Attribute("ip"));
}
Sencillo ¿verdad?
Tags: programacion, juegos
Comentarios
Publicar un comentario