# 运行时 / 编码与压缩 ### `convertDataToBuf(data, convert_type)` 将一个数据转换成内存存贮的BUFFER。 | 参数 | 类型 | 说明 | | -------------- | ------ | ------------------------------------- | | `data` | any | 任意类型,存贮的数据。 | | `convert_type` | string | 字符串类型,指定转换的类型,类型如下: | 返回:string ### `decodeGraph(grap, _type, name, data, prop)` 分解图形,将Graph分解成为类型、名称、数据和属性两个数组,属性数组的下标为属性名,值为属性值。 | 参数 | 类型 | 说明 | | ------ | ------ | -------------------------------------------- | | `grap` | any | 图形,输入; | | `_type` | any | 整数,图形类型,参见图形类型函数,输出值; | | `name` | string | 字符串,图形类型名称,与返回值对应,输出值; | | `data` | array | 二维数组,图形数据,输出值; | | `prop` | array | 二维数组,图形属性组合,输出值; | 返回:array ### `decodeGraphGroup(graph_group, graph_array, graph_group_prop)` 分解图形组合,将GraphGroup分解成为TGraph数组以及属性数组,属性数组的下标为属性名,值为属性值。 | 参数 | 类型 | 说明 | | ------------------ | ----- | -------------------------------- | | `graph_group` | any | 图形,组合图形; | | `graph_array` | array | 图形,分解后的图形组合,输出值; | | `graph_group_prop` | array | 一维数组,图形属性及对应的值; | 返回:array ### `decoderadixstr(s, presufflen, radix)` 对指定进制格式的源码字符串进行解码。与Encoderadixstr的功能相反。 | 参数 | 类型 | 说明 | | ------------ | ------ | --------------------------------------------------------------------------------------------------------------------- | | `s` | string | 字符串 | | `presufflen` | int | 整型,前缀或者后缀长度。 | | `radix` | int | 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位为1表明采用小写字母。低6位为进制,最大支持36进制。 | 返回:string ### `decoderadixwstr(s, presufflen, radix)` 对指定进制指定格式的宽字节源码串进行解码。与Encoderadixwstr的功能相反。 | 参数 | 类型 | 说明 | | ------------ | ------ | --------------------------------------------------------------------------------------------------------------------- | | `s` | string | 字符串 | | `presufflen` | int | 整型,前缀或者后缀长度。 | | `radix` | int | 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位为1表明采用小写字母。低6位为进制,最大支持36进制。 | 返回:string ### `encodeGraphGroup(graph_array, graph_group_prop)` 返回根据指定的TGraph数组和属性数组组合成的图形组合。 | 参数 | 类型 | 说明 | | ------------------ | ----- | -------------------- | | `graph_array` | array | 一维数组,图形组合; | | `graph_group_prop` | array | 二维数组,属性组合; | 返回:TgraphGroup #### 示例 ```tsl setsysparam(pn_stock(),'SZ000002'); setsysparam(pn_date(),inttodate(20140117)); setsysparam(pn_nday(),250); t1:=NDay2(gfopen(), Open() , gfclose(), close(), gfhigh(), high(), gflow(),  low(), gftime(), datetimetostr(sp_time()), gfColor(), IfThen3(Close(), Open(), ClRed() ,  //涨颜色 clYellow() , //平颜色 Clblue()   //跌颜色 ), gffill(),ifThen3(Close(), Open(), flClear(), flSolid(),flSolid()) ); t2:=NDay2('MA10',Ma(Close(),10)); g1:=graph(gtKline(),'KLine',t1); g2:=graph(gtline(),'MA10',t2); return EncodeGraphGroup(array(g1,g2),array()); ``` ### `encoderadixstr(s, presuff, radix)` 将字符串转换为指定进制格式的源码。 | 参数 | 类型 | 说明 | | --------- | ------ | ---------------------------------------------------------------------------------------------------------------------- | | `s` | string | 字符串 | | `presuff` | string | 字符串,指定的前缀或者后缀串。 | | `radix` | int | 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位 为1表明采用小写字母。低6位为进制,最大支持36进制。 | 返回:string ### `encoderadixwstr(s, presuff, radix)` 将字符串按宽字节码转换成指定进制格式的源码。而Encoderadixstr是按多字节字码进行转换。 | 参数 | 类型 | 说明 | | --------- | ------ | ---------------------------------------------------------------------------------------------------------------------- | | `s` | string | 字符串 | | `presuff` | string | 字符串,指定的前缀或者后缀串。 | | `radix` | int | 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位 为1表明采用小写字母。低6位为进制,最大支持36进制。 | 返回:string ### `exportJsonString(data, n, return_value)` 将TSL结构数据转换为json串。对于非ASCII编码的文字转换为转义字符。 天软中的nan,inf,-inf会相应地转换为NaN,Infinity,-Infinity,该处理是为了便捷与python处理的兼容,在交互中,将天软的数据结果转化为json串再传递到python中,可以解决编码不一导致转码效率低下的问题。但同时该类特殊数值的处理无法保障在其他语言中也能转换正常。 | 参数 | 类型 | 说明 | | -------------- | ------- | ----------------------------------------------------------------------------- | | `data` | anytype | 天软数据,任意数据类型。 | | `n` | int | 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数 | | `return_value` | string | 字符串,json串 | 返回:string ### `getMsgDigest(arg)` 信息摘要函数相关函数。 | 参数 | 类型 | 说明 | | ------------- | ------ | ------------------------------------------------------------------------------------------ | | `arg` | string | 要计算摘要的字符串 | | `digest_type` | int | 摘要算法编号:`0` CRC32,`1` MD5,`2` SHA1,`3` SHA224,`4` SHA256,`5` SHA384,`6` SHA512 | | `alias` | string | 文件所在目录别名;不用别名时传空字符串 | | `filename` | int | 要计算摘要的文件路径 | | `digest_type` | any | 摘要算法编号:`0` CRC32,`1` MD5,`2` SHA1,`3` SHA224,`4` SHA256,`5` SHA384,`6` SHA512 | 返回:string ## 信息摘要及编码 / 进制编码函数 ### `makeLcid(language_id, sort_id)` LCID编码函数。 | 参数 | 类型 | 说明 | | ------------- | ---- | ---------------- | | `language_id` | int | 语言ID标识ID。 | | `sort_id` | int | 排序顺序标识ID。 | 返回:int ### `unicodeEsc2()` 多语言支持函数相关函数。 返回:string ### `unicodetoUtf8(s)` Unicode串转为UTF8串。天软字符串前加L表示宽字节字符串,即Unicode串。 | 参数 | 类型 | 说明 | | ---- | ------ | --------------------------- | | `s` | string | 字符串,Unicode编码字符串。 | 返回:string ### `unicompress(_type, data, compresslevel, return_value)` 统一压缩函数,对字符串或二进制进行压缩。 type目前支持zstd,zlib,lz4三种类型,压缩级别在zstd和zlib模式下生效。 | 参数 | 类型 | 说明 | | --------------- | ------ | ------------------------------------------------ | | `_type` | string | 压缩类型,目前支持zstd,zlib,lz4三种类型 | | `data` | string | 字符串或二进制类型, | | `compresslevel` | int | 可选参数,压缩级别,目前仅在zstd和zlib模式下生效 | | `return_value` | string | 压缩后的串 | 返回:string ### `uniuncompress(_type, data, srclen, return_value)` 统一解压函数。 type目前支持zstd,zlib,lz4三种类型,srclen的设置是解压的大小,不设定会自动识别,设定后会比较大小是否相符,如果知道原大小,则应该设定该参数。 | 参数 | 类型 | 说明 | | -------------- | ------ | ---------------------------------------------------------------------------------------- | | `_type` | string | 解压类型 | | `data` | string | 字符串或二进制类型,被解压的串 | | `srclen` | int | 解压的大小,不设定会自动识别,设定后会比较大小是否相符,如果知道原大小,则应该设定该参数 | | `return_value` | int | 解压后的串 | 返回:string