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

匹配空白字符

%.

匹配任意字符 (即跳过当前字符)