IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36942


Ignore:
Timestamp:
Jun 30, 2014, 9:36:58 PM (12 years ago)
Author:
eugene
Message:

expose parse_nextword; add ptrparse

Location:
branches/eam_branches/ipp-20140610/Ohana/src/libohana
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140610/Ohana/src/libohana/include/ohana.h

    r36907 r36942  
    252252int     scan_line              PROTO((FILE *f, char *line));
    253253int     scan_line_maxlen       PROTO((FILE *f, char *line, int maxlen));
     254char   *parse_nextword         PROTO((char *string));
     255char   *parse_nextword_csv     PROTO((char *string));
    254256int     dparse                 PROTO((double *X, int NX, char *line));
    255257int     dparse_csv             PROTO((double *X, int NX, char *line));
    256258int     iparse                 PROTO((int *X, int NX, char *line));
    257259int     iparse_csv             PROTO((int *X, int NX, char *line));
     260int     charparse_csv          PROTO((char *X, int NX, char *line));
     261char   *ptrparse               PROTO((int NX, char *line));
     262char   *ptrparse_csv           PROTO((int NX, char *line));
    258263int     charparse_csv          PROTO((char *X, int NX, char *line));
    259264int     charparse              PROTO((char *X, int NX, char *line));
  • branches/eam_branches/ipp-20140610/Ohana/src/libohana/src/string.c

    r36907 r36942  
    167167}
    168168
    169 char *_parse_nextword (char *string) {
     169char *parse_nextword (char *string) {
    170170
    171171  if (string == (char *) NULL) return ((char *) NULL);
     
    182182// ,,, : go from , to , to , to 0
    183183
    184 char *_parse_nextword_csv (char *string) {
     184char *parse_nextword_csv (char *string) {
    185185
    186186  if (string == (char *) NULL) return ((char *) NULL);
     
    199199  word = line;
    200200  for (i = 0; i < NX - 1; i++)
    201     word = _parse_nextword (word);
     201    word = parse_nextword (word);
    202202
    203203  *X = strtod (word, &ptr);
     
    215215  word = line;
    216216  for (i = 0; i < NX - 1; i++)
    217     word = _parse_nextword_csv (word);
     217    word = parse_nextword_csv (word);
    218218 
    219219  if (word[0] == '"') word[0] = ' ';
     
    237237  word = line;
    238238  for (i = 0; i < NX - 1; i++)
    239     word = _parse_nextword (word);
     239    word = parse_nextword (word);
    240240
    241241  *X = strtol (word, &ptr, 0);
     
    253253  word = line;
    254254  for (i = 0; i < NX - 1; i++)
    255     word = _parse_nextword_csv (word);
     255    word = parse_nextword_csv (word);
    256256 
    257257  if (word[0] == '"') word[0] = ' ';
     
    274274  word = line;
    275275  for (i = 0; i < NX - 1; i++)
    276     word = _parse_nextword (word);
     276    word = parse_nextword (word);
    277277
    278278  *X = word[0];
     
    287287  word = line;
    288288  for (i = 0; i < NX - 1; i++)
    289     word = _parse_nextword_csv (word);
     289    word = parse_nextword_csv (word);
    290290 
    291291  if (word[0] == '"') word[0] = word[1];
     
    299299}
    300300
     301// return a pointer to the start of the desired field
     302char *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
     314char *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
    301328int tparse (time_t *X, int NX, char *line) {
    302329
     
    306333  word = line;
    307334  for (i = 0; i < NX - 1; i++)
    308     word = _parse_nextword (word);
     335    word = parse_nextword (word);
    309336
    310337  status = ohana_str_to_time (word, X);
     
    320347  word = line;
    321348  for (i = 0; i < NX - 1; i++)
    322     word = _parse_nextword_csv (word);
     349    word = parse_nextword_csv (word);
    323350 
    324351  if (word[0] == '"') word[0] = ' ';
     
    341368  word = line;
    342369  for (i = 0; i < NX - 1; i++)
    343     word = _parse_nextword (word);
     370    word = parse_nextword (word);
    344371
    345372  *X = strtod (word, &ptr);
Note: See TracChangeset for help on using the changeset viewer.