/*! \brief ASCII northing to double. Converts the ASCII "northing" coordinate string in <i>buf</i> to its double representation (into <i>northing</i>). Supported projection codes (see gis.h): - PROJECTION_XY - PROJECTION_UTM - PROJECTION_LL - PROJECTION_OTHER \param buf buffer hold string northing \param[out] northing northing \param projection projection code \return 0 on error \return 1 on success */ int G_scan_northing(const char *buf, double *northing, int projection) { if (projection == PROJECTION_LL) { if (G_lat_scan(buf, northing)) return 1; if (!scan_double(buf, northing)) return 0; return (*northing <= 90.0 && *northing >= -90.0); } return scan_double(buf, northing); }
/*! \brief ASCII easting to double. Converts the ASCII "easting" coordinate string in <i>buf</i> to its double representation (into <i>easting</i>). Supported projection codes (see gis.h): - PROJECTION_XY - PROJECTION_UTM - PROJECTION_LL - PROJECTION_OTHER \param buf buffer containing string easting \param[out] easting easting \param projection projection code \return 0 on error \return 1 on success */ int G_scan_easting(const char *buf, double *easting, int projection) { if (projection == PROJECTION_LL) { if (G_lon_scan(buf, easting)) return 1; if (!scan_double(buf, easting)) return 0; while (*easting > 180.0) *easting -= 360.0; while (*easting < -180.0) *easting += 360.0; return 1; } return scan_double(buf, easting); }
/*! \brief ASCII resolution to double. Converts the ASCII "resolution" string in <i>buf</i> to its double representation (into resolution). Supported projection codes (see gis.h): - PROJECTION_XY - PROJECTION_UTM - PROJECTION_LL - PROJECTION_OTHER \param buf buffer containing string resolution \param[out] resolution resolution value \param projection projection code \return 0 on error \return 1 on success */ int G_scan_resolution(const char *buf, double *res, int projection) { if (projection == PROJECTION_LL) { if (G_llres_scan(buf, res)) return 1; } return (scan_double(buf, res) && *res > 0.0); }
void Parser::scan_value(void) { int c = read_byte(); switch (c) { case trace::TYPE_NULL: case trace::TYPE_FALSE: case trace::TYPE_TRUE: break; case trace::TYPE_SINT: scan_sint(); break; case trace::TYPE_UINT: scan_uint(); break; case trace::TYPE_FLOAT: scan_float(); break; case trace::TYPE_DOUBLE: scan_double(); break; case trace::TYPE_STRING: scan_string(); break; case trace::TYPE_ENUM: scan_enum(); break; case trace::TYPE_BITMASK: scan_bitmask(); break; case trace::TYPE_ARRAY: scan_array(); break; case trace::TYPE_STRUCT: scan_struct(); break; case trace::TYPE_BLOB: scan_blob(); break; case trace::TYPE_OPAQUE: scan_opaque(); break; case trace::TYPE_REPR: scan_repr(); break; case trace::TYPE_WSTRING: scan_wstring(); break; default: std::cerr << "error: unknown type " << c << "\n"; exit(1); case -1: break; } }
void fscan_recipy(FILE *fp, struct vs_recipy *vs) { char lb[RECIPY_TEXT + RECSYM_SIZE + 1]; int ret; char *r, *val; if (fp == NULL) return; init_vs_recipy(vs); while ((r = fgets(lb, RECIPY_TEXT+16, fp)) != NULL) { ret = sym_lookup (lb, res_syms, &val); if (ret == -2) // commment, skip continue; if (ret == -1) { info_printf("fscan recipy: bad line: %s\n", lb); continue; } switch (ret) { case 1: scan_string(vs->objname, val, RECIPY_TEXT); break; case 2: scan_string(vs->chart, val, RECIPY_TEXT); break; case 3: scan_string(vs->frame, val, RECIPY_TEXT); break; case 4: scan_double(&(vs->p.r1), val); break; case 5: scan_double(&(vs->p.r2), val); break; case 6: scan_double(&(vs->p.r3), val); break; case 7: scan_int(&(vs->p.quads), val); break; case 8: scan_int(&(vs->p.sky_method), val); break; case 9: scan_double(&(vs->p.sigmas), val); break; case 10: scan_int(&(vs->p.max_iter), val); break; case 11: scan_int(&(vs->usewcs), val); break; case 12: scan_ra(&(vs->ra), val); break; case 13: scan_dec(&(vs->dec), val); break; case 14: ret = radd_std_star(vs, val); break; case 15: ret = radd_pgm_star(vs, val); break; case 16: scan_double(&(vs->p.sat_limit), val); break; case 17: scan_string(vs->repstar, val, RECIPY_TEXT); break; case 18: scan_string(vs->repinfo, val, RECIPY_TEXT); break; case 19: scan_double(&(vs->scint_factor), val); break; case 20: scan_double(&(vs->aperture), val); break; case 21: scan_double(&(vs->airmass), val); break; }; } }