char* getLineAsString(FILE* fl, char* ttag, int tagsize) { rewind(fl); char tag[tagsize], line[128]; while (get_line(fl, line)) { tag_argument(line, tag, tagsize); if(!strcmp(tag,ttag)) { return strdup(line); } } return "Undefined"; } int get_line(FILE * fl, char *buf) { char temp[256]; int lines = 0; do { fgets(temp, 256, fl); if (feof(fl)) return (0); lines++; } while (*temp == '*' || *temp == '\n'); temp[strlen(temp) - 1] = '\0'; strcpy(buf, temp); return (lines); } void tag_argument(char *argument, char *tag, int tagsize) { char *tmp = argument, *ttag = tag, *wrt = argument; int i; for (i = 0; i < tagsize; i++) *(ttag++) = *(tmp++); *ttag = '\0'; while (*tmp == ':' || *tmp == ' ') tmp++; while (*tmp) *(wrt++) = *(tmp++); *wrt = '\0'; }