Hello all,
I'm hoping I'm not beating a dead horse here (which is completely possible) but I am unable to figure out what I'm doing wrong with this CSV parsing code. I have a CSV file that has null fields, but will always have the commas for those fields. So, what we get is a file that has the current structure:
1,2,3,4,,,,,,6,7,,,7,8,,,8
It could also all be filled in:
1,2,3,4,5,6,7,8,9
They will always have the same number of columns though (even though my example did not). The code I'm using to parse this file is shown below:
I've tested files with all the columns filled out in every line and this code seems to work. So I guess my question is, how do I test for a field having null characters such that I can print the REAL 11th field of the csv file's line? Hopefully this is a clear question, if you need any clarification, please let me know and I will provide as much data as I can!Code:#include <stdio.h> /* required for file operations */ #include <string.h> FILE *fr; /* declare the file pointer */ main() { char line[2500]; char delims[] = ","; char *result = NULL; int count = 0; fr = fopen ("testfile", "r"); /* fr = fopen ("tmpfile", "r"); open the file for reading */ /* elapsed.dta is the name of the file */ /* "rt" means open the file for reading text */ while(fgets(line, 2500, fr) != NULL) { if (line[0] == '#') { continue; } result = strtok(line, delims); while (result != NULL) { if (count == 11) { printf("result: %s\n", result); count = 0; } else { count+=1; } result = strtok(NULL, delims); } count = 0; } fclose(fr); /* close the file prior to exiting the routine */ } /*of main*/



LinkBack URL
About LinkBacks


