CSV Policy C++ 接口
C++ 接口在 oo 命名空间中定义了抽象接口 iCSVPolicy。该接口提供解析 CSV 的格式化配置选项。
类定义
-
class oo::iCSVPolicy
CSV Policy 配置的抽象接口。
字符处理
-
virtual char oo::iCSVPolicy::get_delimiter() const
获取当前字段分隔符。
- 返回:
分隔符。
-
virtual bool oo::iCSVPolicy::set_delimiter(char delim)
设置字段分隔符。
- 参数:
delim -- 要设置的分隔符。
- 返回:
成功返回
true,失败返回false。
-
virtual char oo::iCSVPolicy::get_quote() const
获取当前字符串转义字符。
- 返回:
字符串转义字符。
-
virtual void oo::iCSVPolicy::set_quote(char quote)
设置字符串转义字符。
- 参数:
quote -- 要设置的字符串转义字符。
-
virtual void oo::iCSVPolicy::set_no_quote()
禁用字符串转义功能。
-
virtual bool oo::iCSVPolicy::is_quote_enabled() const
检查字符串转义功能是否启用。
- 返回:
启用返回
true,否则返回false。
-
virtual void oo::iCSVPolicy::add_trim_char(char trim_char)
向修剪字符集合中添加一个字符,如果该字符出现在字段值之前或之后,将在字段值解析时被去除。
- 参数:
trim_char -- 要添加到修剪字符集合的字符。
-
virtual void oo::iCSVPolicy::clear_trim_chars()
清空所有要修剪的字符。
列处理
-
virtual void oo::iCSVPolicy::ignore_column(int col)
标记在解析过程中需要忽略的列。
- 参数:
col -- 要忽略的基于 1 的列索引。
数值格式化
-
virtual char oo::iCSVPolicy::decimal_symbol() const
获取当前使用的小数点符号。
- 返回:
小数点符号。
-
virtual void oo::iCSVPolicy::set_decimal_symbol(char symbol)
设置小数点符号。
- 参数:
symbol -- 小数点符号。
-
virtual char oo::iCSVPolicy::group_separator() const
获取当前数字分组的分隔符(如千分位分隔符)。
- 返回:
数字分组的分隔符。
-
virtual void oo::iCSVPolicy::set_group_separator(char sep)
设置数字分组的分隔符(如千分位分隔符)。
- 参数:
sep -- 数字分组的分隔符。
-
virtual int oo::iCSVPolicy::group_size() const
获取当前的数字分组大小(如千分位分隔,则分组大小为 3)。
- 返回:
The grouping size (number of digits per group).
-
virtual void oo::iCSVPolicy::set_group_size(int size)
设置数字分组大小(如千分位分隔,则分组大小为 3)。
- 参数:
size -- 分组大小。
货币
-
virtual const char *oo::iCSVPolicy::currency_sign() const
获取当前货币符号字符串(如:"$"、"USD")。
- 返回:
货币符号字符串。
-
virtual void oo::iCSVPolicy::set_currency_sign(const char *sign)
设置货币符号(如:"$"、"USD")。
- 参数:
sign -- 货币符号字符串。
日期时间格式
-
virtual const char *oo::iCSVPolicy::datetime_format() const
获取当前日期时间格式字符串。
- 返回:
日期时间格式字符串。
-
virtual void oo::iCSVPolicy::set_datetime_format(const char *fmt)
设置日期时间格式字符串。
- 参数:
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 |
匹配空白字符 |
|
%. |
匹配任意字符 (即跳过当前字符) |