Markus Rechberger / C / Dot Conf
 
StartSeite | MarkusRechberger/ C/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Veränderung (letzte Änderung) (keine anderen Diffs, Normalansicht)

Verändert: 1c1,63
Beschreibe hier die neue Seite.
== DotConf ==


Eine Bibliothek um Konfigurationsdateien leichter verarbeiten zu können.

[[Code]
#include <stdio.h>
#include <string.h>
#include <dotconf.h>

/*
vim:set ts=4:
vim:set shiftwidth=4:
*/

static {DOTCONF CB}?(cb_list);
static {DOTCONF CB}?(cb_str);

static const configoption_t options[] = {
{"{MP FS OPTION}?", {ARG STR}?, cb_str, NULL, {CTX ALL}? },
{"{MP PROXY}?", {ARG LIST}?, cb_list, NULL, {CTX ALL}?},
{"{MP OUTPUT}?", {ARG STR}?, cb_str, NULL, {CTX ALL}?},
{LAST OPTION}?
};

int main(int argc, char **argv)
{
configfile_t *configfile;

configfile = dotconf_create("simple.conf", options, NULL, {CASE INSENSITIVE}?);
if (!configfile)
{
fprintf(stderr, "Error opening config file\n");
return 1;
}

if (dotconf_command_loop(configfile) == 0)
fprintf(stderr, "Error reading config file\n");

dotconf_cleanup(configfile);

return 0;
}

{DOTCONF CB}?(cb_list)
{
int i;
printf("%s:%ld: %s: [ ",
cmd->configfile->filename, cmd->configfile->line, cmd->name);
for (i = 0; i < cmd->arg_count; i++)
printf("(%d) %s ", i, cmd->data.list[i]);
printf("]\n");
return NULL;
}

{DOTCONF CB}?(cb_str)
{
printf("%s:%ld: %s: [%s]\n",
cmd->configfile->filename, cmd->configfile->line,
cmd->name, cmd->data.str);
return NULL;
}
]

DotConf

Eine Bibliothek um Konfigurationsdateien leichter verarbeiten zu können.

#include <stdio.h>
#include <string.h>
#include <dotconf.h>

/*
  vim:set ts=4:
  vim:set shiftwidth=4:
*/

static DOTCONF_CB(cb_list);
static DOTCONF_CB(cb_str);

static const configoption_t options[] = {
{"MP_FS_OPTION", ARG_STR, cb_str, NULL, CTX_ALL },
{"MP_PROXY", ARG_LIST, cb_list, NULL, CTX_ALL},
{"MP_OUTPUT", ARG_STR, cb_str, NULL, CTX_ALL},
LAST_OPTION
};

int main(int argc, char **argv)
{
configfile_t *configfile;

configfile = dotconf_create("simple.conf", options, NULL, CASE_INSENSITIVE);
if (!configfile)
{
fprintf(stderr, "Error opening config file\n");
return 1;
}

if (dotconf_command_loop(configfile) == 0)
fprintf(stderr, "Error reading config file\n");

dotconf_cleanup(configfile);

return 0;
}

DOTCONF_CB(cb_list)
{
int i;
printf("%s:%ld: %s: [  ",
   cmd->configfile->filename, cmd->configfile->line, cmd->name);
for (i = 0; i < cmd->arg_count; i++)
printf("(%d) %s  ", i, cmd->data.list[i]);
printf("]\n");
return NULL;
}

DOTCONF_CB(cb_str)
{
printf("%s:%ld: %s: [%s]\n",
   cmd->configfile->filename, cmd->configfile->line,
   cmd->name, cmd->data.str);
return NULL;
}


StartSeite | MarkusRechberger/ C/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 26. Januar 2005 10:35 (diff))
Suchbegriff: gesucht wird
im Titel
im Text