# 运行时 / 编码与压缩

## `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

## `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
