• [^] # Re: Treecc

    Posté par . En réponse à la dépêche Utiliser lex et yacc dans vos programmes C/C++. Évalué à 0.

    J'imagine que tu n'executes pas ca comme tel, mais que tu mets des protections, des fois que le fichier de conf contienne une coquille qui fasse planter le programme ?

    Meme systeme en Perl, je crois.

    En C avec glib:

    GHashTable *config = g_hash_table_new(g_str_hash, g_str_equal);
    FILE *fd = fopen(...);
    while(!feof(fd)) {
    char tmp[BUFSIZ];
    gchar**s;

    fgets (tmp, BUFSIZ, fd);
    s = g_strsplit_set(tmp,"=", 2);
    g_hash_table_insert(config, s[0], s[1]);
    g_free(s);
    }
    fclose(fd);


    Bah ouaih, un peu plus long, mais plus robuste si on ajoute la verification des erreurs eventuelles de fgets et de g_strplut_set :)

    Le bonjour chez vous,
    Yves

    PS. Code non teste, et en plus, vous voudrez surement virer tout ce qui suit un # en mettant un '0円' a la place indiquee par strchr(tmp, '#'); Et puis peut-etre aussi supprimer les espace avec g_strchug() ?