Hola, ¡bienvenido a nuestra comunidad! Es tu primera visita?
Registrarse

User Tag List

Resultados 1 al 1 de 1
  1. #1
    Moderador Avatar de Natzugen

    Fecha de ingreso:
    11 oct, 16
    Mensajes:
    666

    Libreria IniReader

    Bueno ya que ando programando mi propio gs desde cero estaba buscando formas de mantener un orden y mayor control sobre el proyecto (sin mencionar que el getprivateprofile me estaba jodiendo) me encontre con esta libreria en github la cual permite leer los archivos .ini de una manera mas organizada y sin problemas de asignacion para valores tipo boolean o float, sin mas que decir aca la dejo.


    Descargas
    https://github.com/benhoyt/inih



    Ejemplo simple en c
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "../ini.h"
    
    typedef struct
    {
        int version;
        const char* name;
        const char* email;
    } configuration;
    
    static int handler(void* user, const char* section, const char* name,
                       const char* value)
    {
        configuration* pconfig = (configuration*)user;
    
        #define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 0
        if (MATCH("protocol", "version")) {
            pconfig->version = atoi(value);
        } else if (MATCH("user", "name")) {
            pconfig->name = strdup(value);
        } else if (MATCH("user", "email")) {
            pconfig->email = strdup(value);
        } else {
            return 0;  /* unknown section/name, error */
        }
        return 1;
    }
    
    int main(int argc, char* argv[])
    {
        configuration config;
    
        if (ini_parse("test.ini", handler, &config) < 0) {
            printf("Can't load 'test.ini'\n");
            return 1;
        }
        printf("Config loaded from 'test.ini': version=%d, name=%s, email=%s\n",
            config.version, config.name, config.email);
        return 0;
    }


    ejemplo simple en c++
    Código:
    #include <iostream>
    #include "INIReader.h"
    
    int main()
    {
        INIReader reader("../examples/test.ini");
    
        if (reader.ParseError() < 0) {
            std::cout << "Can't load 'test.ini'\n";
            return 1;
        }
        std::cout << "Config loaded from 'test.ini': version="
                  << reader.GetInteger("protocol", "version", -1) << ", name="
                  << reader.Get("user", "name", "UNKNOWN") << ", email="
                  << reader.Get("user", "email", "UNKNOWN") << ", pi="
                  << reader.GetReal("user", "pi", -1) << ", active="
                  << reader.GetBoolean("user", "active", true) << "\n";
        return 0;
    }
    Creditos
    benhoyt
    GitHub community

  2. Publicidad!
    Publicidad MU Server



 

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •