GRASS Programmer's Manual
6.4.1(2011)
|
00001 00016 #include <grass/gis.h> 00017 00027 int G_fwrite_key_value(FILE * fd, const struct Key_Value *kv) 00028 { 00029 int n; 00030 int err; 00031 00032 err = 0; 00033 for (n = 0; n < kv->nitems; n++) 00034 if (kv->value[n][0]) { 00035 if (EOF == fprintf(fd, "%s: %s\n", kv->key[n], kv->value[n])) 00036 err = -1; 00037 } 00038 return err; 00039 } 00040 00051 struct Key_Value *G_fread_key_value(FILE * fd) 00052 { 00053 struct Key_Value *kv; 00054 char *key, *value; 00055 char buf[1024]; 00056 00057 kv = G_create_key_value(); 00058 if (kv == NULL) 00059 return NULL; 00060 while (G_getl2(buf, sizeof(buf) - 1, fd) != 0) { 00061 key = value = buf; 00062 while (*value && *value != ':') 00063 value++; 00064 if (*value != ':') 00065 continue; 00066 *value++ = 0; 00067 G_strip(key); 00068 G_strip(value); 00069 if (!G_set_key_value(key, value, kv)) { 00070 G_free_key_value(kv); 00071 return NULL; 00072 } 00073 } 00074 return kv; 00075 }