# CSV Policy C 接口

本接口用于提供解析 CSV 的格式化配置选项。所有函数均通过不透明指针 `CSVPolicyHandle` 进行内部函数调用。

## 字符处理

char get_delimiter(CSVPolicyHandle handle)

  获取当前字段分隔符。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    字段分隔符。

bool set_delimiter(CSVPolicyHandle handle, char delim)

  设置字段分隔符。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - delim -- 要设置的分隔符。

  返回:

    成功返回 `true`，失败返回 `false`。

char get_quote(CSVPolicyHandle handle)

  获取当前字符串转义字符。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    字符串转义字符。

void set_quote(CSVPolicyHandle handle, char quote)

  设置字符串转义字符。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - quote -- 要设置的字符串转义字符。

void set_no_quote(CSVPolicyHandle handle)

  禁用字符串转义功能。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

bool is_quote_enabled(CSVPolicyHandle handle)

  检查字符串转义功能是否启用。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    启用返回 `true`，否则返回 `false`。

void add_trim_char(CSVPolicyHandle handle, char trim_char)

  向修剪字符集合中添加一个字符，如果该字符出现在字段值之前或之后，将在字段值解析时被去除。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - trim_char -- 要添加到修剪集合的字符。

void clear_trim_chars(CSVPolicyHandle handle)

  清空所有修剪字符。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

## 列处理

void ignore_column(CSVPolicyHandle handle, int col)

  标记在解析过程中需要忽略的列。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - col -- 要忽略的基于 1 的列索引。

## 数值格式化

char decimal_symbol(CSVPolicyHandle handle)

  获取当前小数点符号。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    小数点符号。

void set_decimal_symbol(CSVPolicyHandle handle, char symbol)

  设置小数点符号。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - symbol -- 小数点符号。

char thousand_separator(CSVPolicyHandle handle)

  获取当前数字分组的分隔符(如千分位分隔符)。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    数字分组的分隔符。

void set_thousand_separator(CSVPolicyHandle handle, char sep)

  设置数字分组的分隔符(如千分位分隔符)。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - sep -- 数字分组的分隔符。

int group_size(CSVPolicyHandle handle)

  获取当前数字分组大小(如千分位分隔，则分组大小为 3)。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    分组大小(每组数字位数)。

void set_group_size(CSVPolicyHandle handle, int size)

  设置数字分组大小(如千分位分隔，则分组大小为 3)。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - size -- 分组大小。

## 货币

const char *currency_sign(CSVPolicyHandle handle)

  获取当前货币符号字符串(如："$"、"USD")。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    货币符号字符串。

void set_currency_sign(CSVPolicyHandle handle, const char *sign)

  设置货币符号(如："$"、"USD")。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - sign -- 货币符号字符串。

## 日期时间格式

const char *datetime_format(CSVPolicyHandle handle)

  获取当前日期时间格式字符串。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

  返回:

    日期时间格式字符串。

void set_datetime_format(CSVPolicyHandle handle, const char *fmt)

  设置日期时间格式字符串。

  参数:

    - handle -- 有效的 CSV Policy 句柄。

    - fmt -- 日期时间格式字符串（例如 `"%Y-%m-%d %H:%M:%S"`）。

### 日期时间格式控制符参考表

控制符 | 描述 | 示例
--- | --- | ---
%Y | 完整的年份 | 2026
%y | 仅年份的最后两位 | 26
%m | 两位数的月份 (01 到 12) | 01
%b | 月份的缩写 (Jan, Feb, ..., Dec) | Jan
%h | 同 %b |
%B | 月份的全称 (January, February, ...) | January
%d | 两位数的日期 (01 到 31) | 03
%a | 星期几的缩写 (Sun, Mon, ..., Sat) | Mon
%A | 星期几的全称 (Sunday, Monday, ...) | Monday
%H | 24小时制的小时 (00 到 23) | 14
%I | 12小时制的小时 (01 到 12) | 02
%M | 分钟 (00 到 59) | 45
%S | 秒 (00 到 59) | 30
%p | AM 或 PM (与 12 小时制的小时相关) | AM
%z | 时区偏移 (如 +0200 或 -0800) | +0000
%Z | 时区名称 (只支持 "UTC") | UTC
%n | 匹配空白字符 |
%t | 匹配空白字符 |
%. | 匹配任意字符 (即跳过当前字符) |

Styled using the Piccolo Theme