FBCALL double fb_WstrVal ( const FB_WCHAR *str ) { double val; ssize_t len; if( str == NULL ) return 0.0; len = fb_wstr_Len( str ); if( len == 0 ) val = 0.0; else val = fb_WstrToDouble( str, len ); return val; }
FBCALL void fb_DataReadSingle( float *dst ) { FB_LOCK(); if( __fb_data_ptr ) { if( __fb_data_ptr->len == FB_DATATYPE_OFS ) { *dst = (size_t)__fb_data_ptr->ofs; } else if( __fb_data_ptr->len & FB_DATATYPE_WSTR ) { *dst = fb_WstrToDouble( __fb_data_ptr->wstr, __fb_data_ptr->len & 0x7FFF ); } else { *dst = fb_hStr2Double( __fb_data_ptr->zstr, __fb_data_ptr->len ); } } else { /* no more DATA */ *dst = 0.0; } fb_DataNext( ); FB_UNLOCK(); }
/*:::::*/ FBCALL void fb_DataReadSingle( float *dst ) { short len; FB_LOCK(); len = fb_DataGetLen(); if( len == 0 ) *dst = 0.0; else if( len == FB_DATATYPE_OFS ) *dst = (float)(unsigned long)__fb_data_ptr->ofs; /* wstring? */ else if( len & FB_DATATYPE_WSTR ) *dst = (float)fb_WstrToDouble( __fb_data_ptr->wstr, len & 0x7FFF ); else *dst = (float)fb_hStr2Double( __fb_data_ptr->zstr, len ); if( __fb_data_ptr != NULL ) ++__fb_data_ptr; FB_UNLOCK(); }