int getAGIResultFromString(char * rawdbdata, AGIResult * ResultStruct, FILE * log) { char buffer[80]; unsigned int delimiters = 0; int lastdelimiterpos = 0; for (int i = 0 ; (unsigned)i < strlen(rawdbdata) ; i++) { if ( (rawdbdata[i] != ' ') && (rawdbdata[i] != '=' ) ) { /* DEBUG FILE */ fprintf(log, "Character: %i\n", i); fprintf(log, "Buffer position: %i\n", (i-lastdelimiterpos)); fprintf(log, "Data printed: %c\n", rawdbdata[i]); fflush(log); /* DEBUG FILE */ buffer[i-lastdelimiterpos] = rawdbdata[i]; /* DEBUG FILE */ fprintf(log, "Buffer contents: %s\n", buffer); fflush(log); /* DEBUG FILE */ } else { /* DEBUG FILE */ fflush(log); /* DEBUG FILE */ delimiters++; if ( delimiters == 1 ) { lastdelimiterpos = i; lastdelimiterpos++; ResultStruct->id = atoi(buffer); strcpy(buffer,""); /* DEBUG FILE */ fprintf(log, "Found one delimiter: %i\n", ResultStruct->id); fflush(log); /* DEBUG FILE */ } if ( (delimiters == 2) && (ResultStruct->id == 200) ) { lastdelimiterpos = i; lastdelimiterpos++; /* DEBUG FILE */ fprintf(log, "Entered second delimiter: %s\n", buffer); fflush(log); /* DEBUG FILE */ strcpy(ResultStruct->Result, buffer); strcpy(buffer, ""); /* DEBUG FILE */ fprintf(log, "Found second delimiter: %s\n", ResultStruct->Result); fprintf(log, "This is left in buffer: %s\n", buffer); fflush(log); /* DEBUG FILE */ } if ( (delimiters == 3) && (ResultStruct->id == 200) ) { lastdelimiterpos = i; lastdelimiterpos++; /* DEBUG FILE */ fprintf(log, "Entered last delimiter: %s\n", buffer); fflush(log); fflush(log); /* DEBUG FILE */ strcpy(ResultStruct->ResultValue, buffer); strcpy(buffer, ""); i = strlen(rawdbdata); /* DEBUG FILE */ fprintf(log, "Found last delimiter: %s\n", ResultStruct->ResultValue); fflush(log); /* DEBUG FILE */ } if ( (delimiters == 2) && (ResultStruct->id != 200) ) { lastdelimiterpos = i; lastdelimiterpos++; strcpy(ResultStruct->Info, rawdbdata); strcpy(buffer, ""); i = strlen(rawdbdata); } } } return 0; }