Changeset 36942
- Timestamp:
- Jun 30, 2014, 9:36:58 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140610/Ohana/src/libohana
- Files:
-
- 2 edited
-
include/ohana.h (modified) (1 diff)
-
src/string.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140610/Ohana/src/libohana/include/ohana.h
r36907 r36942 252 252 int scan_line PROTO((FILE *f, char *line)); 253 253 int scan_line_maxlen PROTO((FILE *f, char *line, int maxlen)); 254 char *parse_nextword PROTO((char *string)); 255 char *parse_nextword_csv PROTO((char *string)); 254 256 int dparse PROTO((double *X, int NX, char *line)); 255 257 int dparse_csv PROTO((double *X, int NX, char *line)); 256 258 int iparse PROTO((int *X, int NX, char *line)); 257 259 int iparse_csv PROTO((int *X, int NX, char *line)); 260 int charparse_csv PROTO((char *X, int NX, char *line)); 261 char *ptrparse PROTO((int NX, char *line)); 262 char *ptrparse_csv PROTO((int NX, char *line)); 258 263 int charparse_csv PROTO((char *X, int NX, char *line)); 259 264 int charparse PROTO((char *X, int NX, char *line)); -
branches/eam_branches/ipp-20140610/Ohana/src/libohana/src/string.c
r36907 r36942 167 167 } 168 168 169 char * _parse_nextword (char *string) {169 char *parse_nextword (char *string) { 170 170 171 171 if (string == (char *) NULL) return ((char *) NULL); … … 182 182 // ,,, : go from , to , to , to 0 183 183 184 char * _parse_nextword_csv (char *string) {184 char *parse_nextword_csv (char *string) { 185 185 186 186 if (string == (char *) NULL) return ((char *) NULL); … … 199 199 word = line; 200 200 for (i = 0; i < NX - 1; i++) 201 word = _parse_nextword (word);201 word = parse_nextword (word); 202 202 203 203 *X = strtod (word, &ptr); … … 215 215 word = line; 216 216 for (i = 0; i < NX - 1; i++) 217 word = _parse_nextword_csv (word);217 word = parse_nextword_csv (word); 218 218 219 219 if (word[0] == '"') word[0] = ' '; … … 237 237 word = line; 238 238 for (i = 0; i < NX - 1; i++) 239 word = _parse_nextword (word);239 word = parse_nextword (word); 240 240 241 241 *X = strtol (word, &ptr, 0); … … 253 253 word = line; 254 254 for (i = 0; i < NX - 1; i++) 255 word = _parse_nextword_csv (word);255 word = parse_nextword_csv (word); 256 256 257 257 if (word[0] == '"') word[0] = ' '; … … 274 274 word = line; 275 275 for (i = 0; i < NX - 1; i++) 276 word = _parse_nextword (word);276 word = parse_nextword (word); 277 277 278 278 *X = word[0]; … … 287 287 word = line; 288 288 for (i = 0; i < NX - 1; i++) 289 word = _parse_nextword_csv (word);289 word = parse_nextword_csv (word); 290 290 291 291 if (word[0] == '"') word[0] = word[1]; … … 299 299 } 300 300 301 // return a pointer to the start of the desired field 302 char *ptrparse (int NX, char *line) { 303 304 int i; 305 char *word; 306 307 word = line; 308 for (i = 0; i < NX - 1; i++) { 309 word = parse_nextword (word); 310 } 311 return word; 312 } 313 314 char *ptrparse_csv (int NX, char *line) { 315 316 int i; 317 char *word; 318 319 word = line; 320 for (i = 0; i < NX - 1; i++) 321 word = parse_nextword_csv (word); 322 323 if (word[0] == '"') word ++; 324 if (word[0] == ',') return NULL; 325 return word; 326 } 327 301 328 int tparse (time_t *X, int NX, char *line) { 302 329 … … 306 333 word = line; 307 334 for (i = 0; i < NX - 1; i++) 308 word = _parse_nextword (word);335 word = parse_nextword (word); 309 336 310 337 status = ohana_str_to_time (word, X); … … 320 347 word = line; 321 348 for (i = 0; i < NX - 1; i++) 322 word = _parse_nextword_csv (word);349 word = parse_nextword_csv (word); 323 350 324 351 if (word[0] == '"') word[0] = ' '; … … 341 368 word = line; 342 369 for (i = 0; i < NX - 1; i++) 343 word = _parse_nextword (word);370 word = parse_nextword (word); 344 371 345 372 *X = strtod (word, &ptr);
Note:
See TracChangeset
for help on using the changeset viewer.
