Beispiel #1
0
/*:::::*/
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 );
}
Beispiel #2
0
/*:::::*/
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 );
}
Beispiel #3
0
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;
}
Beispiel #4
0
/*:::::*/
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();
}