CSV Policy C Interface
This interface provides formatting configuration options for parsing CSV. All functions operate via an opaque pointer CSVPolicyHandle for internal function calls.
Character Handling
-
char get_delimiter(CSVPolicyHandle handle)
Gets the current field delimiter.
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The field delimiter character.
-
bool set_delimiter(CSVPolicyHandle handle, char delim)
Sets the field delimiter.
- Parameters:
handle – A valid CSV Policy handle.
delim – The delimiter character to set.
- Returns:
trueon success,falseon failure.
-
char get_quote(CSVPolicyHandle handle)
Gets the current string escaping character.
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The string escaping character.
-
void set_quote(CSVPolicyHandle handle, char quote)
Sets the string escaping character.
- Parameters:
handle – A valid CSV Policy handle.
quote – The string escaping character to set.
-
void set_no_quote(CSVPolicyHandle handle)
Disables string escaping.
- Parameters:
handle – A valid CSV Policy handle.
-
bool is_quote_enabled(CSVPolicyHandle handle)
Checks whether string escaping is enabled.
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
trueif enabled, otherwisefalse.
-
void add_trim_char(CSVPolicyHandle handle, char trim_char)
Adds a character to the set of trim characters. If the character appears before or after a field value, it will be stripped during field value parsing.
- Parameters:
handle – A valid CSV Policy handle.
trim_char – The character to add to the trim set.
-
void clear_trim_chars(CSVPolicyHandle handle)
Clears all trim characters.
- Parameters:
handle – A valid CSV Policy handle.
Column Handling
-
void ignore_column(CSVPolicyHandle handle, int col)
Marks a column to be ignored during parsing.
- Parameters:
handle – A valid CSV Policy handle.
col – The 1‑based column index to ignore.
Numeric Formatting
-
char decimal_symbol(CSVPolicyHandle handle)
Gets the current decimal point symbol.
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The decimal point symbol.
-
void set_decimal_symbol(CSVPolicyHandle handle, char symbol)
Sets the decimal point symbol.
- Parameters:
handle – A valid CSV Policy handle.
symbol – The decimal point symbol.
-
char thousand_separator(CSVPolicyHandle handle)
Gets the current digit grouping separator (e.g., thousands separator).
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The digit grouping separator.
-
void set_thousand_separator(CSVPolicyHandle handle, char sep)
Sets the digit grouping separator (e.g., thousands separator).
- Parameters:
handle – A valid CSV Policy handle.
sep – The digit grouping separator.
-
int group_size(CSVPolicyHandle handle)
Gets the current digit grouping size (e.g., for thousands separators, the group size is 3).
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The grouping size (number of digits per group).
-
void set_group_size(CSVPolicyHandle handle, int size)
Sets the digit grouping size (e.g., for thousands separators, the group size is 3).
- Parameters:
handle – A valid CSV Policy handle.
size – The grouping size.
Currency
-
const char *currency_sign(CSVPolicyHandle handle)
Gets the current currency sign string (e.g.,
"$","USD").- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The currency sign string.
-
void set_currency_sign(CSVPolicyHandle handle, const char *sign)
Sets the currency sign (e.g.,
"$","USD").- Parameters:
handle – A valid CSV Policy handle.
sign – The currency sign string.
Date/Time Format
-
const char *datetime_format(CSVPolicyHandle handle)
Gets the current date/time format string.
- Parameters:
handle – A valid CSV Policy handle.
- Returns:
The date/time format string.
-
void set_datetime_format(CSVPolicyHandle handle, const char *fmt)
Sets the date/time format string.
- Parameters:
handle – A valid CSV Policy handle.
fmt – The date/time format string (e.g.,
"%Y-%m-%d %H:%M:%S").
Date/Time Format Specifier Reference
Specifier |
Description |
Example |
|---|---|---|
%Y |
Full year |
2026 |
%y |
Last two digits of year |
26 |
%m |
Two‑digit month (01 to 12) |
01 |
%b |
Abbreviated month name (Jan, Feb, …) |
Jan |
%h |
Same as %b |
|
%B |
Full month name (January, February, …) |
January |
%d |
Two‑digit day (01 to 31) |
03 |
%a |
Abbreviated weekday (Sun, Mon, …) |
Mon |
%A |
Full weekday (Sunday, Monday, …) |
Monday |
%H |
Hour in 24‑hour format (00 to 23) |
14 |
%I |
Hour in 12‑hour format (01 to 12) |
02 |
%M |
Minute (00 to 59) |
45 |
%S |
Second (00 to 59) |
30 |
%p |
AM or PM (with 12‑hour hour) |
AM |
%z |
Time zone offset (e.g., +0200 or -0800) |
+0000 |
%Z |
Time zone name (Only “UTC” is supported) |
UTC |
%n |
Matches whitespace |
|
%t |
Matches whitespace |
|
%. |
Matches any character (skips it) |