All pastes #886710 Raw Edit

Unnamed

public text v1 · immutable
#886710 ·published 2008-01-31 21:31 UTC
rendered paste body
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;

}