QDB 新增了一个 TQTextConverter 转换器,只是为了符合习惯,从它上面又继承了一个 TQCSVConverter,实际上,两者是完全等价的(后者直接继承自前者,没有修改任何内容)。
TQTextConverter 相比 TQConverter 新增了以下属性:
- ExportEncoding
规定导出文本文件时使用的编码,默认为 UTF-8 编码; - Delimiter
字段间的分隔符,用来区分不同的字段值,默认为半角的逗号; - Quoter
字符串值的引用符号,默认为半角的双引号; - FirstIsFieldName
首行是不是字段名,如果是设置为 True,否则为 False。默认为 True; - OnDecodeValue
在解析字段值时触发,在从文本行中得到一个字段值时,如果需要进一步转换,请使用该事件来处理; - OnEncodeValue
在编码字段值时触发,在写入一个字段值时,如果需要转换后才保存进去,请使用该事件处理; - OnGetFieldType
在解析字段定义时触发,以便允许用户将某个字段映射到特定的类型上去,而不是默认的字符串类型; - OnGetCustomFields
在解析字段定义时触发,以便允许用户添加额外的字段,以便进行更复杂的处理; - OnGetCustomValues
在读取自定义字段的值时触发,用户可以在此为自定义的字段赋值。
至于这个转换器的用法和普通的转换器没有什么区别,下面是一个导出的文件内容示例:
"Id","Age","Birthday","Name","Sex","Scale","Comment" "CC_1","4","2012年7月8日 11:26:56","宰父氋民","False","69.3","Comment for 宰父氋民" "CC_2","2","2014年6月28日 11:26:56","崔轸","False","25.4","Comment for 崔轸" "CC_3","4","2012年6月21日 11:26:56","蒯溿","False","50.2","Comment for 蒯溿" "CC_4","2","2014年6月18日 11:26:56","佴椄","False","68.6","Comment for 佴椄" "CC_5","5","2011年7月3日 11:26:56","桓志摼","False","57.1","Comment for 桓志摼" "CC_6","5","2011年7月30日 11:26:56","罗顾","True","73.1","Comment for 罗顾" "CC_7","5","2011年6月26日 11:26:56","云浈栌","True","48.6","Comment for 云浈栌" "CC_8","5","2011年7月13日 11:26:56","逯謢穤","False","34","Comment for 逯謢穤" "CC_9","2","2014年6月28日 11:26:56","水想緦","False","76.2","Comment for 水想緦" "CC_10","4","2012年6月18日 11:26:56","游棦","True","52.7","Comment for 游棦"
下面是使用这个转换器时我们需要注意的:
- 不支持多数据集,也就是说它只能转换一个结果集的数据,多余的数据集内容将不会被导出。
- 不支持导出变更信息,也就是说,它始终只导出的是当前状态的数据内容,而不会包含用于对比变更内容的信息。