Conversion Functions

Harbour Conversion Functions

Bin2I Convert signed short encoded bytes into Harbour numeric
Bin2L Convert signed long encoded bytes into Harbour numeric
Bin2U Convert unsigned long encoded bytes into Harbour numeric
Bin2W Convert unsigned short encoded bytes into Harbour numeric
BitToC Converts position-dependent bits into characters
BinToDec Converts a Binary Value to Decimal
CToBit Converts a character string into a bit pattern
CToF Converts a special 8-byte string into a floating point number
CToN Converts a numeric string into a different base
DecToBin Converts a Decimal Value to Binary
DecToHexa Converts a Decimal Value to Hexa
DecToOctal Converts a Decimal Value to Octal
Fahrenheit Temperature conversion Celsius to Fahrenheit
FToC Converts a floating point number into a special 8-byte string
HexaToDec Converts a Hexa Value to Decimal
I2Bin Convert Harbour numeric into signed short encoded bytes
L2Bin Convert Harbour numeric into signed long encoded bytes
NToC Converts the numbers in a digit string into a different number base
OctalToDec Converts a Octal Value to Decimal
U2Bin Convert Harbour numeric into unsigned long encoded bytes
W2Bin Convert Harbour numeric into unsigned short encoded bytes
Word Converts double to integer values
XTOC Convert an expression to character type string

SP_WGT_MEAS

WGT_MEAS()

  Short:
  ------
  WGT_MEAS() A Weights and Measures conversion metafunction

  Returns:
  --------
  Nothing

  Syntax:
  -------
  WGT_MEAS()

  Description:
  ------------
  WGT_MEAS() is a menu driven Weights and Measure
  conversion utility, which supports many types of conversions.

  Examples:
  ---------
   WGT_MEAS()

  Source:
  -------
  S_MEAS.PRG

 

FT_XTOY

FT_XTOY()
 Convert from any data type to any other data type

 Syntax

      FT_XTOY( <xValueToConvert>, <cTypeToConvertTo> ;
               [, <lWantYesNo> ] ) -> xResult

 Arguments

     <xValueToConvert> is the value to convert.

     <cTypeToConvertTo> is the type of value to convert to
     ("C","D","L","N","A" or "B").

     <lWantYesNo> is a logical to signal if 'Y' or 'N' is to be returned
     if Converting a logical, otherwise '.T.' or '.F.' will be returned
     for logicals.

 Returns

     The original value converted to the new type.

 Description

     This function converts a value of character, date, numeric, logical,
     array or code block type to any of the other type.  While it is
     guaranteed to return a value of the correct type, that value may not
     be meaningful (i.e., converting from a code block returns an EMPTY()
     value of the desired type).

 Examples

     nNumericValue := FT_XTOY(cInputValue, "N")
     IF (FT_XTOY(nInputValue, "L"))

 Source: ANY2ANY.PRG

 Author: David Husnian

 

FT_UNSQZN

FT_UNSQZN()
 Uncompress a numeric compressed by FT_SQZN()
------------------------------------------------------------------------------

 Syntax

      FT_UNSQZN( <cCompressed>, <nSize> [, <nDecimals> ] ) -> nValue

 Arguments

     <cCompressed>  - Compressed string, obtained from FT_SQZN()

     <nSize>        - Size of numeric field

     <nDecimals>    - Optional number of decimal places

 Returns

     nValue       - Uncompressed numeric value

 Description

    The FT_UNSQZN function returns the numeric value from the compressed
    string.  The compression is 50% the storage space of the original
    number.  The original number must have been compressed using the
    FT_SQZN() function.

    This function, along with FT_SQZN() can be used to reduce disk storage
    requirements for numeric fields in a database file.

 Examples

    mcust_id := FT_UNSQZN(TRANS->cust_id,8),;
    mamount  := FT_UNSQZN(TRANS->amount,12,2)

 Source: SQZN.PRG

 Author: Joseph D. Booth, Sr.

See Also: FT_SQZN()

FT_STOD

FT_STOD()
 Convert a date string to a Clipper date data type

 Syntax

      FT_STOD( <cDateStr> ) -> dDateType

 Arguments

     <cDateStr> is a Clipper string in the format "CCYYMMDD".

 Returns

     A Clipper date type.

 Description

     This function allows the programmer to hard code a date into the
     program without knowing what the current date type is.  This
     function is the converse of the Clipper DTOS() function.

 Examples

     LOCAL dMyDate
     dMyDate := FT_STOD( "19901127" )

 Source: STOD.C

 Author: Clayton Neff

 

FT_SQZN

FT_SQZN()
 Compress a numeric value into a character string

 Syntax

      FT_SQZN( <nValue> [, <nSize> [, <nDecimals> ] ] ) -> cCompressed

 Arguments

     nValue       - The numeric value to be compressed
     nSize        - Optional size of numeric field, defaults to 10
     nDecimals    - Optional number of decimal places, defaults to 0

 Returns

     cCompressed  - Compressed string, 50% the size of nSize

 Description

    The FT_SQZN function allows a numeric value to be compressed when
    stored in the database.  The compression is 50% the storage space
    of the original number.  The companion function, FT_UNSQZN returns
    the original number from the compressed string.

 Examples

  replace TRANS->cust_id with FT_SQZN(mcust_id,8),;
          TRANS->amount  with FT_SQZN(mamount,12,2)

 Source: SQZN.PRG

 Author: Joseph D. Booth, Sr.

See Also: FT_UNSQZN



FT_NTOW

FT_NTOW()
 Translate numeric value to words

 Syntax

      FT_NTOW( <nNumber> ) -> cWords

 Arguments

     <nNumber>  An integer to translate

 Returns

     A text string representing <nNumber>

 Description

      Translates numeric input to a text string.

      FT_NTOW is intended to be used with integers only.  Since I don't
      know what your application will be, I can't assume the type of
      fraction you want returned (ninety nine cents, 99/100, .99, etc).
      If you want the fraction in words, just pass it as an integer.

      Do not pass a negative number!  Handle negative numbers any way
      you need to in your code.  (ie: CR, DB, Negative, Minus, etc.)

      Also, numeric 0 is returned as a null string.  You will need to
      make a decision how to output it (zero dollars, no dollars, etc).

 Examples

                ? FT_NTOW( 999 )                -> Nine Hundred Ninety Nine

                ? FT_NTOW( 1000 )               -> One Thousand

                ? FT_NTOW( 23 ) + " Dollars and " + FT_NTOW( 99 ) + " Cents"
                        -> Twenty Three Dollars and Ninety Nine Cents

                ? FT_NTOW( 23 ) + " Dollars and " + "99/100"
                        -> Twenty Three Dollars and 99/100

    x      := -23.99
    cents  := str( (x - int( x )) * 100, 2, 0 ) + "/100"
                x      := int( x )
    string := iif( x < 0, "Credit of ", "Debit of " )
                ? string + FT_NTOW( abs(x) ) + " Dollars and " + "99/100"
                     -> Credit of Twenty Three Dollars and 99/100

 Source: NTOW.PRG

 Author: Gary Baren

FT_INVCLR

FT_INVCLR()
 Get the inverse of a color
------------------------------------------------------------------------------

 Syntax

      FT_INVCLR( [ <cDsrdColor> ] ) -> cColor

 Arguments

     <cDsrdColor> is the color to get the inverse of.  Defaults to
     current color.

 Returns

     The inverse of the passed color.

 Description

     This function inverts a passed color (in the Clipper format: ??/??),
     e.g., "W/N" is converted to "N/W".

 Examples

     cInverse := FT_INVCLR()            // Get Inverse of Current Color
     cInvErr  := FT_INVCLR( cErrColor ) // Get Inverse of cErrorColor

 Source: INVCLR.PRG

 Author: David Husnian