Created
November 21, 2010 21:26
-
-
Save zdxerr/709169 to your computer and use it in GitHub Desktop.
GKeyFile example.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <gtk/gtk.h> | |
int main(void) | |
{ | |
GKeyFile *key_file; | |
GError *error; | |
gsize length; | |
gchar *str_value; | |
gint int_value; | |
gdouble double_value; | |
key_file = g_key_file_new(); | |
error = NULL; | |
guint group, key; | |
if(!g_key_file_load_from_file(key_file, | |
"test.ini", | |
G_KEY_FILE_KEEP_COMMENTS | | |
G_KEY_FILE_KEEP_TRANSLATIONS, | |
&error)) | |
{ | |
g_debug("%s", error->message); | |
} | |
else | |
{ | |
str_value = g_key_file_get_string(key_file, | |
"test", | |
"str_value", | |
&error); | |
int_value = g_key_file_get_integer(key_file, | |
"test", | |
"int_value", | |
&error); | |
double_value = g_key_file_get_double(key_file, | |
"test", | |
"double_value", | |
&error); | |
g_debug("str: %s \nint: %d \ndouble: %f\n", | |
str_value, int_value, double_value); | |
g_key_file_set_string(key_file, "test", "str_value", str_value); | |
g_key_file_set_integer(key_file, "test", "int_value", int_value + 1); | |
g_key_file_set_integer(key_file, "test", "double_value", double_value * 2); | |
g_debug("%s", g_key_file_to_data(key_file, &length, &error)); | |
gsize num_groups, num_keys; | |
gchar **groups, **keys, *value; | |
groups = g_key_file_get_groups(key_file, &num_groups); | |
for(group = 0;group < num_groups;group++) | |
{ | |
g_debug("group %u/%u: \t%s", group, num_groups - 1, groups[group]); | |
keys = g_key_file_get_keys(key_file, groups[group], &num_keys, &error); | |
for(key = 0;key < num_keys;key++) | |
{ | |
value = g_key_file_get_value(key_file, | |
groups[group], | |
keys[key], | |
&error); | |
g_debug("\t\tkey %u/%u: \t%s => %s", key, num_keys - 1, keys[key], value); | |
} | |
} | |
} | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GTK_CFLAGS = $(shell pkg-config gtk+-2.0 --cflags) | |
GTK_LIBS = $(shell pkg-config gtk+-2.0 --libs) | |
all: key_file | |
key_file: key_file.o | |
gcc -o key_file.exe key_file.o $(GTK_LIBS) | |
key_file.o: key_file.c | |
gcc -c key_file.c -o key_file.o $(GTK_CFLAGS) | |
clean: | |
rm -rf *o key_file | |
rm -rf *exe key_file | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# test ini file | |
[test] | |
str_value=hello world | |
int_value=5 | |
double_value=8.888765 | |
[yoyo] | |
v1 = bla | |
v2=TRUE | |
v3=FALSE | |
test_var[bla]=yo | |
test_var[fla]=hoe | |
test_var[0]=s | |
test_var[1]=r | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment