int main(int argc, char **argv) { GOC_IStream* is = NULL; GOC_Iterator* it = NULL; GOC_Properties* props = NULL; if ( argc != 2 ) { GOC_INFO("Podaj jako argument plik typu properties"); return -1; } is = goc_fileIStreamOpen(argv[1]); props = goc_propertiesAlloc(); props = goc_propertiesLoad(props, is); it = goc_propertiesListCategories(props); while ( goc_iteratorHasNext(it) ) { GOC_Category* cat = (GOC_Category*)goc_iteratorNext(it); printf("GOC_Category: %s\n", cat->name); GOC_Iterator* pit = goc_propertiesListCategory(props, cat->name); while ( goc_iteratorHasNext(pit) ) { GOC_Property* p = (GOC_Property*)goc_iteratorNext(pit); printf("\t%s = %s\n", p->name, p->value); } free(pit); printf("\n"); } free(it); props = goc_propertiesFree(props); goc_isClose(is); return 0; }
int main(int argc, char **argv) { GOC_IStream *wordStream = NULL; GOC_IStream *fileStream = NULL; GOC_Properties *props = NULL; GOC_Iterator *propIt = NULL; char *line; char *pos = NULL; if ( argc < 3 ) { GOC_BINFO("Usage: %s wordconvert.properties filetochange", argv[0]); GOC_INFO("\tApplication changes word in file to another"); return 0; } wordStream = goc_fileIStreamOpen(argv[1]); if ( wordStream == NULL ) { GOC_BERROR("Cannot open file %s", argv[1]); return -1; } fileStream = goc_fileIStreamOpen(argv[2]); if ( fileStream == NULL ) { GOC_BERROR("Cannot open file %s", argv[2]); return -1; } props = goc_propertiesAlloc(); props = goc_propertiesLoad(props, wordStream); while ( line = goc_isReadLine(fileStream) ) { char *bline = NULL; char *last = line; pos = NULL; while ( pos = findNextWordBegin(line, pos) ) { char *word = getWord( pos ); char *v = goc_propertiesGetValue( props, word ); *pos = 0; bline = goc_stringAdd(bline, last); if ( v != NULL ) { bline = goc_stringAdd(bline, v); } else { bline = goc_stringAdd(bline, word); } pos += strlen(word); word = goc_stringFree(word); last = pos; } bline = goc_stringAdd(bline, last); puts(bline); line = goc_stringFree(line); bline = goc_stringFree(bline); } free(propIt); goc_isClose(wordStream); goc_isClose(fileStream); return 0; }