Previous: Numeric Formatting Styles, Up: Input and Output Formats [Contents][Index]
These functions provide the ability to convert data fields into
union value
s and vice versa.
Parses input as a field containing data in the given format type. The resulting value is stored in output, which the caller must have initialized with the given width. For consistency, width must be 0 if type is a numeric format type and greater than 0 if type is a string format type. encoding should be set to indicate the character encoding of input. dict must be a pointer to the dictionary with which output is associated.
If input is the empty string (with length 0), output is set to the value set on SET BLANKS (see SET BLANKS in PSPP Users Guide) for a numeric value, or to all spaces for a string value. This applies regardless of the usual parsing requirements for type.
If implied_decimals is greater than zero, then the numeric result is shifted right by implied_decimals decimal places if input does not contain a decimal point character or an exponent. Only certain numeric format types support implied decimal places; for string formats and other numeric formats, implied_decimals has no effect. DATA LIST FIXED is the primary user of this feature (see DATA LIST FIXED in PSPP Users Guide). Other callers should generally specify 0 for implied_decimals, to disable this feature.
When input contains invalid input data, data_in
outputs a
message using msg
.
If first_column is
nonzero, it is included in any such error message as the 1-based
column number of the start of the field. The last column in the field
is calculated as first_column + input - 1. To
suppress error output, enclose the call to data_in
by calls to
msg_disable
and msg_enable
.
This function returns true on success, false if a message was output (even if suppressed). Overflow and underflow provoke warnings but are not propagated to the caller as errors.
This function is declared in data/data-in.h.
Converts the data pointed to by input into a string value, which
will be encoded in UTF-8, according to output format specifier format.
Format
must be a valid output format. The width of input is
inferred from format using an algorithm equivalent to
fmt_var_width
.
When input contains data that cannot be represented in the given
format, data_out
may output a message using msg
,
although the current implementation does not
consistently do so. To suppress error output, enclose the call to
data_out
by calls to msg_disable
and msg_enable
.
This function is declared in data/data-out.h.
Previous: Numeric Formatting Styles, Up: Input and Output Formats [Contents][Index]