[QDB]新增 TQTextConverter 转换器支持文本格式的数据转换

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 游棦"

下面是使用这个转换器时我们需要注意的:

  • 不支持多数据集,也就是说它只能转换一个结果集的数据,多余的数据集内容将不会被导出。
  • 不支持导出变更信息,也就是说,它始终只导出的是当前状态的数据内容,而不会包含用于对比变更内容的信息。
分享到: