#ident "$URL: svn://elmer/devel/SVN/SDDAS/trunk/libdB/FieldGet.c $ %D% SwRI" #include /* for memset */ #include /* for sprintf */ #include "dbf.h" dbRet_t FieldGet(SDDAS_INT dbf, SDDAS_INT fn, void *data) { dbfRecord_t *D; FieldRecord_t *fld; SDDAS_CHAR *cptr, num[64]; SDDAS_LONG *lptr; double *dptr; if ((D = GetOldDbfHandle(dbf)) == NULL) return FAILURE; if (fn >= D->NumFields || fn < 0) { return FAILURE; } fld = D->Fields + fn; switch (fld->Typ) { case CHARACTER: cptr = (SDDAS_CHAR *)data; sprintf(cptr, "%*.*s", fld->Len, fld->Len, fld->Parm); break; case NUMERIC: memset(num, 0, sizeof(num)); sprintf(num, "%*.*s", fld->Len, fld->Len, fld->Parm); if (fld->Dec == 0) { lptr = (SDDAS_LONG *)data; *lptr = atol(num); } else { dptr = (double *)data; *dptr = atof(num); } break; case DATE: strncpy((char*)data, fld->Parm, 8); break; } return SUCCESS; } dbRet_t FieldGetN(SDDAS_INT dbf, const char *FieldName, void *data) { return FieldGet(dbf, FieldNo(dbf, FieldName), data); }