/*:::::*/ FBCALL int fb_InputSingle( float *dst ) { char buffer[FB_INPUT_MAXNUMERICLEN+1]; int len, isfp; len = fb_FileInputNextToken( buffer, FB_INPUT_MAXNUMERICLEN, FB_FALSE, &isfp ); if( isfp == FALSE ) { if( len <= FB_INPUT_MAXINTLEN ) *dst = (float)fb_hStr2Int( buffer, len ); else if( len <= FB_INPUT_MAXLONGLEN ) *dst = (float)fb_hStr2Longint( buffer, len ); else { if( buffer[0] == '&' ) *dst = (float)fb_hStr2Longint( buffer, len ); else *dst = strtof( buffer, NULL ); } } else *dst = strtof( buffer, NULL ); return fb_ErrorSetNum( FB_RTERROR_OK ); }
/*:::::*/ FBCALL int fb_InputByte( char *dst ) { char buffer[FB_INPUT_MAXNUMERICLEN+1]; int len, isfp; len = fb_FileInputNextToken( buffer, FB_INPUT_MAXNUMERICLEN, FB_FALSE, &isfp ); if( isfp == FALSE ) *dst = (char)fb_hStr2Int( buffer, len ); else *dst = (char)rint( fb_hStr2Double( buffer, len ) ); return fb_ErrorSetNum( FB_RTERROR_OK ); }
FBCALL int fb_VALINT ( FBSTRING *str ) { int val; if( str == NULL ) return 0; if( (str->data == NULL) || (FB_STRSIZE( str ) == 0) ) val = 0; else val = fb_hStr2Int( str->data, FB_STRSIZE( str ) ); /* del if temp */ fb_hStrDelTemp( str ); return val; }
/*:::::*/ FBCALL void fb_DataReadShort( short *dst ) { short len; FB_LOCK(); len = fb_DataGetLen(); if( len == 0 ) *dst = 0; else if( len == FB_DATATYPE_OFS ) *dst = (short)(unsigned long)__fb_data_ptr->ofs; /* wstring? */ else if( len & FB_DATATYPE_WSTR ) *dst = (short)fb_WstrToInt( __fb_data_ptr->wstr, len & 0x7FFF ); else *dst = (short)fb_hStr2Int( __fb_data_ptr->zstr, len ); if( __fb_data_ptr != NULL ) ++__fb_data_ptr; FB_UNLOCK(); }