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

匹配空白字符

%.

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