HP 3000 Manuals

NLFMTNUM [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation


MPE/iX Intrinsics Reference Manual

NLFMTNUM 

NM and CM callable.

Converts a string containing an ASCII number (can include NATIVE-3000
decimal separator (.), thousands separator (,), and currency symbol/name
($)) to a language-specific format using the decimal separator, thousands
separator, and currency symbol/name defined for the native language.

Syntax 
_________________________________________________________
|                                                       |
|                I16V      CA     I16V      CA          |
|     NLFMTNUM(langnum,instring,inlength,outstring,     |
|                I16V    U16A  U16A    U16V   I16V   O-V|
|              outlength,error,numspec,fmtmask,decimals)|
_________________________________________________________

            

Parameters 

langnum               16-bit signed integer by value (required) 

                      Contains the language ID number, specifying which
                      format to use.

instring              character array (required) 

                      Contains the NATIVE-3000 formatted ASCII number to
                      be converted (for example, $123,456.78).  Leading
                      and trailing blanks are allowed.

inlength              16-bit signed integer by value (required) 

                      Contains the length, in bytes, of instring.

outstring             character array (required) 

                      Contains the returned language-specific formatted
                      number.  The decimal separator, thousands
                      separator, and currency symbol/name are replaced
                      (if present), or are inserted (if specified by
                      fmtmask), according to the language definition.
                      The outstring can reference the same address as
                      instring.

outlength             16-bit signed integer by value (required) 

                      Contains the length, in bytes, of outstring.  After
                      a successful call, if outstring is returned
                      left-justified (specified by fmtmask), outlength 
                      returns the actual length, in characters, of the
                      formatted number.

error                 16-bit unsigned integer array (required) 

                      Returns two elements:  the first element is the
                      error number; the second element is reserved and
                      always returns 0.  The possible error number values
                      are:

                         Value    Meaning 

                           0      Successful

                           1      *NLS not installed

                           2      *Specified language not configured

                           3      Invalid length specified (inlength or outlength)

                           4      Invalid number specified (instring)

                           5      *NLS internal error

                           6      *NLS internal error

                           7      Truncation occurred (outstring partially formatted)

                           8      Invalid numspec parameter

                           9      Invalid fmtmask parameter

                          10      Invalid decimals parameter

                      * Do not apply to calls with a langnum equal to 0
                      (NATIVE3000/XL).

numspec               16-bit unsigned integer array (optional) 

                      Contains format specifications, returned
                      from NLNUMSPEC, for the specified language
                      (currency/name, decimal separator, and so on).  If
                      this parameter is present, langnum is ignored, and
                      performance is improved.

fmtmask               16-bit unsigned integer by value (optional) 

                      Contains formatting specifications for the input.
                      The default value is 0, a simple substitution.

                         Bits     Value/Meaning 

                         15:1     Thousands separators:

                                  0    Do not insert thousands separators
                                  1    Insert thousands separators

                         14:1     Decimal separators:

                                  0    Do not insert decimal separators
                                  1    Insert decimal separators

                         13:1     Currency symbol/name:

                                  0    Do not insert currency symbol/name
                                  1    Insert currency symbol/name

                         11:2     Output justification:

                                  0    Do not justify output
                                  1    Left-justify output
                                  2    Right-justify output
                                  3    Left-justify output and return the formatted
                                       number length in outlength 

                         0:11     Reserved for the operating system

decimals              16-bit signed integer by value (optional) 

                      Specifies where to insert the decimal separator.
                      The value is ignored if bit 14 of fmtmask is zero
                      or if a decimal separator is present in the number.

Operation Notes 

Split-stack calls are not permitted.

This intrinsic operates in substitution mode and formatting mode:

Substitution mode     If fmtmask is omitted or has all bits set to zero,
                      the substitution mode substitutes the native
                      equivalent for "." and ","; for ARABIC, it
                      substitutes the alternative set of digits for ASCII
                      digits.  The input is not validated as a number and
                      can contain several numbers.  No justification
                      takes place, and the output is left-truncated if
                      outstring is shorter than instring (for example,
                      1,234.56 becomes ,234.56).

Formatting mode       If any bit 10-15 in fmtmask is set to one, the
                      formatting performs the substitution and formats
                      the input according to fmtmask.  In this mode,
                      input is validated as a number, and only ASCII
                      digits and ".", ",", "-", "+", and "$" are allowed.
                      Only one sign and one "$" are allowed.  They must
                      be the character(s) in instring.  Even if insertion
                      (of the separators) is specified in fmtmask, the
                      thousands and decimal separators are still valid
                      characters in the input.  In this case, they are
                      substituted.  If no justification is specified, the
                      output is right-justified with the same number of
                      trailing spaces as the input.  If the output is
                      truncated, it is left-truncated.


NOTE For languages written right-to-left, trailing spaces in the input are preserved as leading spaces in the output.
Related Information Intrinsics NLCONVNUM, NLNUMSPEC Commands None Manuals Native Language Programmer's Guide (32650-90022)


MPE/iX 5.0 Documentation