# 运行时 / 字符串

## `adjustLineBreaks(s, style)`

字符串相关函数。

| 参数    | 类型                | 说明 |
| ------- | ------------------- | ---- |
| `s`     | string              |      |
| `style` | TTextLineBreakStyle |      |

返回：string

## `ansiDequotedStr(s, aquote)`

字符串相关函数。

| 参数     | 类型   | 说明 |
| -------- | ------ | ---- |
| `s`      | string |      |
| `aquote` | string |      |

返回：string

## `ansiIndexStr(a_text, a_values)`

判定指定的字符串Atext可以匹配到的第一个由参数Avalues指定的字符串数组中元素索引号，就是数组的第几个元素（从0开始计算）。返回整数，如果没有找到匹配的字符串，就返回-1。与AnsiEndsText函数不同，字符串的匹配是大小写敏感的 注意：这种判定是基于大小写敏感

| 参数       | 类型   | 说明                       |
| ---------- | ------ | -------------------------- |
| `a_text`   | string | 字符串类型，需匹配、查找串 |
| `a_values` | array  | 字符串型数组，匹配串数组   |

返回：int

## `ansiIndexText(a_text, a_values)`

判定指定的字符串Atext可以匹配到的第一个由参数Avalues指定的字符串数组中元素索引号，就是数组的第几个元素（从0开始计算）。返回整数，如果没有找到匹配的字符串，就返回-1 注意：这种判定是基于大小写不敏感

| 参数       | 类型   | 说明                       |
| ---------- | ------ | -------------------------- |
| `a_text`   | string | 字符串类型，需匹配、查找串 |
| `a_values` | array  | 字符串型数组，匹配串数组   |

返回：int

## `ansiMatchStr(a_text, avalues)`

判定指定的字符串Atext是否可以匹配由参数Avalues指定的字符串数组中的某个字符串。返回布尔型真假值，如果Atext匹配到了Avalues数组中的某个字符串，就返回真，否则返回假。与AnsiMatchText函数不同，字符串的匹配是大小写敏感的 注意：这种判定是基于大小写敏感

| 参数      | 类型   | 说明                   |
| --------- | ------ | ---------------------- |
| `a_text`  | string | 字符串类型，子串       |
| `avalues` | array  | 字符串型数组，源串数组 |

返回：bool

## `ansiMatchText(a_text, avalues)`

判定指定的字符串Atext是否可以完全匹配由参数Avalues指定的字符串数组中的某个字符串。返回布尔型真假值，如果Atext匹配到了Avalues数组中的某个字符串，就返回真，否则返回假。 注意：这种判定是基于大小写不敏感。

| 参数      | 类型   | 说明                   |
| --------- | ------ | ---------------------- |
| `a_text`  | string | 字符串类型，子串       |
| `avalues` | array  | 字符串型数组，源串数组 |

返回：bool

## `ansiQuotedStr(s, quote)`

字符串相关函数。

| 参数    | 类型   | 说明 |
| ------- | ------ | ---- |
| `s`     | string |      |
| `quote` | string |      |

返回：string

## `ansiStr2Array(value, aps)`

常用字符串函数相关函数。

| 参数    | 类型   | 说明 |
| ------- | ------ | ---- |
| `value` | string |      |
| `aps`   | string |      |

返回：array

## `boolToStr(s)`

将布尔型转换成字符串类型并返回。参数UseBoolStrs一般为假，如果B为真，函数返回'-1',如果B为假，返回'0'。若想返回’True’与’False’的结果可用BoolToStr2实现。

| 参数 | 类型 | 说明                               |
| ---- | ---- | ---------------------------------- |
| `s`  | bool | 数字字符串Default:布尔型，一般为假 |

返回：string

## `containsText(a_text, a_sub_text)`

字符串相关函数。

| 参数         | 类型   | 说明 |
| ------------ | ------ | ---- |
| `a_text`     | string |      |
| `a_sub_text` | string |      |

返回：bool

## `dateTimeToString(format, date_time)`

根据参数Format给定的格式串将参数DateTime转换成字符串类型存到参数Result中，其中格式串的使用参照FormaTDateTime函数

| 参数        | 类型     | 说明                            |
| ----------- | -------- | ------------------------------- |
| `format`    | any      | 字符串，格式串                  |
| `date_time` | datetime | TDateTime类型，需转换的日期时间 |

返回：string

## `eval(exp)`

表达式求值。返回，表达式的值。字符串表达式中支持return。TSL.EXE支持 tsl -eval "echo 100"的模式直接调用TSL语句。 表达式允许在跨函数中传导引用参数和变量

| 参数  | 类型         | 说明                                                                          |
| ----- | ------------ | ----------------------------------------------------------------------------- |
| `exp` | TExpression> | 表达式类型，要计算的表达式。函数表达式直接执行，字符串表达式需在字符串前加&。 |

返回：any

## `fHeader()`

字符串，TS-OPS服务注册时需要指定的头部信息，比如TS-OPS-CALL等。 类型：读写

返回：string

## `fUrl()`

字符串，TS-OPS服务注册地址 类型：读写

返回：string

## `importjsonstring(json)`

将json串转化为天软数据类型。 对大无符号数据会自动转换为长整型（INT64） 注意：输入的字符串应是ASCII编码的。因为JSON标准使用UTF8编码，所以请先使用天软Utf8ToAnsi将UTF8编码的字符串缓缓为ASCII编码。可参考下面的例程。

| 参数   | 类型   | 说明             |
| ------ | ------ | ---------------- |
| `json` | string | 字符串，json串。 |

返回：any

## `leftStr(text, num_chars)`

返回字符串从开始向左数Num_Chars个字符组成的字符串，支持多字节语言，一个汉字当成一个字符。

| 参数        | 类型   | 说明     |
| ----------- | ------ | -------- |
| `text`      | string | 字符串   |
| `num_chars` | int    | 字符个数 |

返回：string

## `ord(value)`

如果是STRING类型返回value\[1\]的ASCII序号，就是value字符串的第一个字符的ASCII序号,如果为WIDESTRING，则为UNICODE码。

| 参数    | 类型   | 说明         |
| ------- | ------ | ------------ |
| `value` | string | WideString\\ |

返回：int

## `reversebString(s)`

字符串相关函数。

| 参数 | 类型   | 说明 |
| ---- | ------ | ---- |
| `s`  | string |      |

返回：string

## 发音相关函数

## `rightStr(text, num_chars)`

前N个字符；基于所指定的字符数返回文本字符串中的最后一个或后几个字符；

| 参数        | 类型   | 说明     |
| ----------- | ------ | -------- |
| `text`      | string | 字符串   |
| `num_chars` | int    | 字符个数 |

返回：string

## `setChar(s, index, ch)`

设置字符串/二进制流中相应位置的字符。Char为0-255之间的整数类型

| 参数    | 类型   | 说明                |
| ------- | ------ | ------------------- |
| `s`     | string | 字符串/二进制       |
| `index` | any    | 整数                |
| `ch`    | string | 0-225之间的整数类型 |

返回：string

## `setLikeFlag(flag, return_value)`

设置Like操作符号的正则表达式默认控制状态。默认值为1。

| 参数           | 类型 | 说明                                                                                  |
| -------------- | ---- | ------------------------------------------------------------------------------------- |
| `flag`         | int  | 正则表达式控制模式，取值如下： 若同时设置多个模式，则设置参数值为其对应模式值之和即可 |
| `return_value` | int  | 匹配成功则返回真，否则返回假                                                          |

返回：bool

## `soundexWord(a_text)`

发音相关函数相关函数。

| 参数     | 类型   | 说明 |
| -------- | ------ | ---- |
| `a_text` | string |      |

返回：int

## `str2Array(value, aps)`

字符串相关函数。

| 参数    | 类型   | 说明 |
| ------- | ------ | ---- |
| `value` | string |      |
| `aps`   | string |      |

返回：array

## `string(value)`

将数据转换为字符串。

| 参数    | 类型   | 说明     |
| ------- | ------ | -------- |
| `value` | string | 输入数据 |

返回：string

## `strSubscriptTableToNormal(t, fn)`

字符串下标数组-->索引下标数组。

| 参数 | 类型   | 说明                                     |
| ---- | ------ | ---------------------------------------- |
| `t`  | array  | 二维数组，数据                           |
| `fn` | string | 字符串或数值，行标变成数据之后使用的列名 |

返回：array

## `strToBool(s)`

如果S为'0'，返回假，如果是非0的数字串，则返回真

| 参数 | 类型   | 说明       |
| ---- | ------ | ---------- |
| `s`  | string | 数字字符串 |

返回：bool

## `strToCurr(s)`

将数字字符串S转换成实数返回，字符串中不允许有千分号，最大有效小数位为4位，超过四位小数的处理在不同的版本处理可能存在不一致的地方。

| 参数 | 类型   | 说明   |
| ---- | ------ | ------ |
| `s`  | string | 字符串 |

返回：float

## `strToDate(s)`

将字符串S转换成TDateTime类型的日期

| 参数 | 类型   | 说明                                     |
| ---- | ------ | ---------------------------------------- |
| `s`  | string | 字符串，日期的字符串类型，如"2014-01-17" |

返回：datetime

## `strToDateTime(s)`

将字符串S转换成TDateTime类型的日期和时间

| 参数 | 类型   | 说明                                                  |
| ---- | ------ | ----------------------------------------------------- |
| `s`  | string | 字符串，日期时间的字符串类型，如"2014-01-17 10:00:00" |

返回：datetime

## `strToFloat(s)`

将数字字符串S转换成实数返回，字符串中不允许有千分号

| 参数 | 类型   | 说明   |
| ---- | ------ | ------ |
| `s`  | string | 字符串 |

返回：float

## `strToInt(s)`

将字符串转换为整数。 支持各种进制格式字符串的转换（如二进制、十六进制等）。若只转换十进制格式字符串，可使用函数FAQ：DecToInt

| 参数 | 类型   | 说明                     |
| ---- | ------ | ------------------------ |
| `s`  | string | 字符串。需转换的字符串。 |

返回：int

## `strToInt32(s)`

将字符串转换为32位整数。 支持各种进制格式字符串的转换（如二进制、十六进制等）。若只转换十进制格式字符串，可使用函数FAQ：DecToInt32

| 参数 | 类型   | 说明                     |
| ---- | ------ | ------------------------ |
| `s`  | string | 字符串。需转换的字符串。 |

返回：int

## `strToInt64(s)`

将字符串转换为64位整数。 支持各种进制格式字符串的转换（如二进制、十六进制等）。若只转换十进制格式字符串，可使用函数FAQ：DecToInt64

| 参数 | 类型   | 说明                     |
| ---- | ------ | ------------------------ |
| `s`  | string | 字符串。需转换的字符串。 |

返回：int

## `strToTime(s)`

将字符串S转换成TDateTime类型的时间

| 参数 | 类型   | 说明                                   |
| ---- | ------ | -------------------------------------- |
| `s`  | string | 字符串，时间的字符串类型，如"15:20:34" |

返回：datetime

## `tryStrToTime(s)`

将字符串S转换成TDateTime类型的时间并存到参数Value中。如果转换成功，则返回真，否则返回假

| 参数 | 类型   | 说明                                                                    |
| ---- | ------ | ----------------------------------------------------------------------- |
| `s`  | string | 字符串，日期的字符串类型，如"2014-01-17"；Default:TDateTime类型，默认值 |

返回：bool

## `unUnicodeEsc2(s)`

字符串相关函数。

| 参数 | 类型   | 说明 |
| ---- | ------ | ---- |
| `s`  | string |      |

返回：string

## `unUnicodeEsc2W(s)`

字符串相关函数。

| 参数 | 类型   | 说明 |
| ---- | ------ | ---- |
| `s`  | string |      |

返回：string

## `writeFile(data_type, alias, file_name, pos, length, data)`

将数据写到本地文件。文件格式可以是字符流、整数流、实数流、字节流等。 多个线程同时写入时无需加锁等操作，仅需将位置设置为-1则可保障追加模式，如果调用失败，可检测返回值为字符串后然后重试即可。（当多线程尝试打开同一个文件写入时会返回错误）

| 参数        | 类型   | 说明                                                                                                                                                                                                                                                                                       |
| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `data_type` | int    | 整数类型。参考文件读写类型函数。                                                                                                                                                                                                                                                           |
| `alias`     | string | 字符串类型。参考目录别名。                                                                                                                                                                                                                                                                 |
| `file_name` | int    | 字符串类型。文件名称。                                                                                                                                                                                                                                                                     |
| `pos`       | int    | 整数类型。写文件的偏移位置，执行结束后将返回新的位置。 如果设为-1，则每次导出到文件的末尾(不会覆盖已有的数据)。 如果设为0，则从文件第一个位置开始导出(会覆盖掉原有位置的数据)。 如果设为1，则从文件的第二个位置开始导出，同0会覆盖，2,3,…依此类推。 如果设为-2,-3-4….，则如同设为0的效果。 |
| `length`    | any    | 整数类型。写入的数据长度。                                                                                                                                                                                                                                                                 |
| `data`      | string | 写入的数据。如果文件类型不是rwRaw或者rwBinary则Data为一个指定类型的数组，否则，为需要写入的字符串。                                                                                                                                                                                        |

返回：string

## 字符串与格式转换函数

## `floatToStrEx(r, n)`

浮点->字符串

| 参数 | 类型    | 说明                     |
| ---- | ------- | ------------------------ |
| `r`  | real    | 实数                     |
| `n`  | integer | 整型数据，保留的小数位数 |

返回：string

### 示例

```tsl
return floatToStrEx (12.6578, 2);
// 结果：’ 12.66’
```

## `textToHtml(src)`

将字符串转化为HTML标准格式的串

| 参数  | 类型   | 说明       |
| ----- | ------ | ---------- |
| `src` | string | 字符串类型 |

返回：string

### 示例

```tsl
src := "The First LETTER won\'t be replaced by \'one\', but the Second letter will.";
return textToHtml(src);
// 结果：
The&#160;First&#160;LETTER&#160;won't&#160;be&#160;replaced&#160;by&#160;'one',&#160;but&#160;the&#160;Second&#160;letter&#160;will.
```

## `textToUrl(a_src)`

将字符串转化为URL标准格式的串

| 参数    | 类型   | 说明       |
| ------- | ------ | ---------- |
| `a_src` | string | 字符串类型 |

返回：string

### 示例

```tsl
a_src := "#abcd 10";
return textToUrl(a_src);
// 结果：%23abcd%20%2010
```

## `htmlToText(src)`

将HTML标准格式的串转化为文本字符串

| 参数  | 类型   | 说明       |
| ----- | ------ | ---------- |
| `src` | string | 字符串类型 |

返回：string

### 示例

```tsl
Src := "The&#160;First&#160;LETTER&#160;won't&#160;be&#160;replaced&#160;by&#160;'one',&#160;but&#160;the&#160;Second&#160;letter&#160;will.";
return htmlToText(src);
// 结果：The First LETTER won't be replaced by 'one', but the Second letter will.
```
