Migrate reference pages to declaration-line storage and rebuild the 13-column index. Add qualified member lookup plus regression and end-to-end coverage.
3345 lines
84 KiB
Markdown
3345 lines
84 KiB
Markdown
# Builtin - 基础 / 字符串
|
||
|
||
## `strCmp(s1, s2)`
|
||
|
||
声明:function
|
||
|
||
比较s1与s2的ascii码值的大小,若s1较大,则返回正数,若相等,则返回0,若s2较大,则返回负数。返回值的绝对值大小无实际意义。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s1` | string | 字符串 |
|
||
| `s2` | string | 字符串 |
|
||
|
||
返回:integer
|
||
|
||
差异说明
|
||
返回值的绝对值大小无实际意义,在不同操作系统中,其绝对值大小也表现不一。
|
||
比如,对比字符或ASCII码的比较,在Linux中,返回ASCII码相差的值,Windows中只返回-1,0,1等代表大小,但是符号是一致的。
|
||
如strcmp(#97, #100); // Windows返回-1,Linux中返回-3。
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a := strCmp("arr", "arry");
|
||
return a; //
|
||
// 输出:-1
|
||
```
|
||
|
||
## `format(formatstr, v1, v2, v3)`
|
||
|
||
声明:function
|
||
|
||
返回根据 formatstr 设定的格式将 v1,v2,v3,… 参数连成字符串返回。
|
||
|
||
在占位计算时,Format 把一个汉字当作**一个**位置;如需把一个汉字当作**两个**位置,请用 `AnsiFormat`(参数定义与 Format 完全一致)。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ----------------------------------------------- |
|
||
| `formatstr` | string | 格式串,由基本文本与 `%` 占位符组成,写法见下文 |
|
||
| `v1, v2, v3` | any | 依次对应各占位符的值,个数不限 |
|
||
|
||
格式串由基本文本字符和占位符组成:基本文字按原样显示,占位符(由 `%` 标出)依次对应 v1,v2,v3,… 各参数。单个占位符的完整写法(各段紧挨、顺序固定、中间不能有空格):
|
||
|
||
```txt
|
||
%[index:][-][width][.prec]TYPE
|
||
```
|
||
|
||
`[]` 内为可选段,其中 `index` 后的冒号 `:` 和 `prec` 前的点 `.` 都是**字面量**,写在格式串里。各段含义:
|
||
|
||
| 段 | 含义 |
|
||
| -------- | -------------------------------------------------------------------------- |
|
||
| `index:` | 参数索引 + 冒号,指明用第几个参数(从 0 开始);省略时按出现顺序依次取参数 |
|
||
| `-` | 向左对齐(省略则右对齐、左侧补空格) |
|
||
| `width` | 最小显示宽度(字符数);实际长度不足时补空格 |
|
||
| `.prec` | 点 + 精度;对 `f/e/n/m` 表示小数位数,对 `g` 表示有效位数 |
|
||
| `TYPE` | 输出类型字母(见下表),**必填** |
|
||
|
||
拆解示例:`%2:-8.2f` = 用第 2 个参数(`2:`)、左对齐(`-`)、最小宽度 8(`8`)、保留 2 位小数(`.2`)、浮点输出(`f`)。
|
||
|
||
补充规则:
|
||
|
||
- TYPE 字母**大小写等价**(`%f` 与 `%F` 相同,`%d` 与 `%D` 相同)。
|
||
- 输出字面量 `%` 用 `%%`(如 `format("%d%%", 50)` → `50%`)。
|
||
- 省略 `index:` 时,占位符个数应与参数个数对应;用了 `index:` 则可任意引用、重复引用参数。
|
||
|
||
`TYPE`(`%` 后的字母)指定输出数据类型;若与对应参数类型不匹配将产生运行时错误:
|
||
|
||
| 符号 | 含义 |
|
||
| --------------- | -------------------------------------------- |
|
||
| `D` decimal | 整型值 → 十进制数字字符串 |
|
||
| `X` hexadecimal | 整型值 → 十六进制数字字符串 |
|
||
| `S` String | 拷贝字符串/字符/字符指针值到输出字符串 |
|
||
| `E` exponential | 浮点值 → 指数表示字符串 |
|
||
| `F` floating | 浮点值 → 浮点表示字符串 |
|
||
| `G` general | 浮点值 → 最短的十进制字符串(浮点或指数) |
|
||
| `N` number | 浮点值 → 带千位分隔符的浮点值 |
|
||
| `m` money | 浮点值 → 现金数量表示字符串(Currency 类型) |
|
||
|
||
> 注:新一代 tsl 语言中 `%f`、`%g`、`%n` 支持复数。
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例00:(基础用法 —— 顺序占位、%s 字符串、%% 转义)
|
||
|
||
```tsl
|
||
return format("Name: %s, Age: %d, Rate: %d%%", "Tom", 18, 50);
|
||
// 输出字符串:Name: Tom, Age: 18, Rate: 50%
|
||
```
|
||
|
||
范例01:(D 和X的使用范例)
|
||
|
||
```tsl
|
||
// 指定前2个数值转化为十进制数字字符串,第3个整数转化成十六进制字符串,3个数值必须是整数。
|
||
// 第2个转化%-5d:由于3只有1位,需要左对齐,则在右边添加4位空格
|
||
return format('%d,%-5d,%X', 4, 3, 12);
|
||
// 输出字符串:4,3 ,C
|
||
```
|
||
|
||
范例02:(E的使用范例)
|
||
|
||
```tsl
|
||
// .1表示后面的小数位的精度。注意,v必须是一个浮点数,比如1234400.0,如果是1234400则被认为是整数,执行函数报错
|
||
return format("%.1E", 1234400.0);
|
||
// 输出字符串:1.2E+006
|
||
```
|
||
|
||
范例03:(F的使用范例)
|
||
|
||
```tsl
|
||
return format("%.1f", 1234400.56789);
|
||
// 输出字符串: 1234400.6
|
||
```
|
||
|
||
范例04:(G的使用范例)
|
||
|
||
```tsl
|
||
return format("%G", 1.2E+006);
|
||
// 输出字符串:1200000
|
||
```
|
||
|
||
范例05:(N的使用范例)
|
||
|
||
```tsl
|
||
return format("%.1N", 1234400.56789);
|
||
// 输出字符串:1,234,400.6
|
||
```
|
||
|
||
范例06:(M的使用范例)
|
||
|
||
```tsl
|
||
return format("%.1M", 1234400.56789);
|
||
// 输出字符串:¥1,234,400.6
|
||
```
|
||
|
||
范例七:(参数的索引)
|
||
|
||
```tsl
|
||
return format('%2:d,%1:5d,%0:X', 14, 3, 12);
|
||
// 输出字符串:12, 3,E
|
||
```
|
||
|
||
## `setLength(s, new_length)`
|
||
|
||
声明:function
|
||
|
||
设置字符串或者Matrix或者二进制类型S的长度为NewLength
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ---------------------- | ------------------------------ |
|
||
| `s` | string\|matrix\|binary | 字符串或者MATRIX或者二进制类型 |
|
||
| `new_length` | integer | 整数,长度 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 相当于截取了源串S的前NewLength个字符
|
||
s := 'thankyou';
|
||
setLength(s, 5);
|
||
return s;
|
||
// 输出字符串:thank
|
||
```
|
||
|
||
## `compareText(s1, s2)`
|
||
|
||
声明:function
|
||
|
||
字符串比较,如果S1大于S2,则返回正数,如果相等,返回0,否则返回负数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------- |
|
||
| `s1` | string | 字符串,比较字符串1 |
|
||
| `s2` | string | 字符串,比较字符串2 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return compareText("SZ000002", "SZ000001"); // 输出:1
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return compareText("SZ000001", "sz000001"); // 输出:0
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return compareText("万科A", "万科A"); // 输出:-65248
|
||
```
|
||
|
||
## `copy(s, index, count)`
|
||
|
||
声明:function
|
||
|
||
字符串拷贝函数,将字符串S的第Index个字符开始,拷贝出Count个字符组成字符串返回,或者说取S的子字符串出来。如果Index大于字符串长度,则返回空字符串,如果拷贝的内容超过了字符串长度,则只返回从第Index个字符到S字符串结尾的部分
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | --------------------------------- |
|
||
| `s` | string | 字符串类型,源串 |
|
||
| `index` | integer | 整数,开始字符,字符串位置从1计起 |
|
||
| `count` | integer | 整数,字符个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a := copy('thank you', 3, 6);
|
||
return a; // 输出字符串:ank yo
|
||
```
|
||
|
||
## `upperCase(s)`
|
||
|
||
声明:function
|
||
|
||
将字符串S转换成大写并返回
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return upperCase("sz000001");
|
||
// 输出:SZ000001
|
||
```
|
||
|
||
## `leftBStr(a_text, a_count)`
|
||
|
||
声明:function
|
||
|
||
返回Atext字符串从开始向左数ACount个字符组成的字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ---------------------- |
|
||
| `a_text` | string | 字符串,源串 |
|
||
| `a_count` | integer | 整数,截取字符串的个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
arr := leftBStr("i am a student", 4);
|
||
return arr; // 输出字符串:i am
|
||
```
|
||
|
||
## `rightBStr(a_text, a_count)`
|
||
|
||
声明:function
|
||
|
||
返回Atext字符串从结束向右数ACount个字符组成的字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ---------------------- |
|
||
| `a_text` | string | 字符串,源串 |
|
||
| `a_count` | integer | 整数,截取字符串的个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
arr := rightBStr("i am a student", 4);
|
||
return arr; // 输出:dent
|
||
```
|
||
|
||
## `midBStr(a_text, astart, a_count)`
|
||
|
||
声明:function
|
||
|
||
返回Atext字符串从Astart个字符的位置开始数出ACount个字符组成的字符串,天软字符串下标从1开始。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | --------------------------- |
|
||
| `a_text` | string | 字符串,源串 |
|
||
| `astart` | integer | 整数,开始位置,从1开始数起 |
|
||
| `a_count` | integer | 整数,截取长度 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
arr := midBStr("i am a student", 6, 6);
|
||
return arr; // 输出: a stud
|
||
```
|
||
|
||
## `getFormatLocalCode()`
|
||
|
||
声明:function
|
||
|
||
获得当前Format等函数默认使用的地区区域码,-1为默认格式,0为当前系统所属地区码。
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
setFormatLocalCode(0);
|
||
return getFormatLocalCode(); // 输出:0
|
||
```
|
||
|
||
## `compareStr(s1, s2)`
|
||
|
||
声明:function
|
||
|
||
字符串比较,如果S1大于S2,则返回正数,如果相等,返回0,否则返回负数
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ----------------- |
|
||
| `s1` | string | 字符串,比较字符1 |
|
||
| `s2` | string | 字符串,比较字符2 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return compareStr("万科A", "万科A");
|
||
// 输出:-65248
|
||
```
|
||
|
||
## `trim(s)`
|
||
|
||
声明:function
|
||
|
||
去掉字符串首尾空格以及控制字符的字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return trim(" Hello! \r\n Tinysoft ");
|
||
{输出字符串(把Hello前的空格以及Tinysoft后的空格删除,并把\r\n转义)
|
||
"Hello!
|
||
Tinysoft"
|
||
}
|
||
```
|
||
|
||
## `sameText(s1, s2)`
|
||
|
||
声明:function
|
||
|
||
返回字符串S1,S2是否相等
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------- |
|
||
| `s1` | string | 字符串,比较字符串1 |
|
||
| `s2` | string | 字符串,比较字符串2 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return sameText("SZ000001", "sz000001"); // 输出:1
|
||
// 输出:1
|
||
```
|
||
|
||
## `appendStr(dest, s)`
|
||
|
||
声明:function
|
||
|
||
将字符串S加到Dest上,并返回到Dest参数中
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------ | -------------- |
|
||
| `dest` | string | 字符串,源串 |
|
||
| `s` | string | 字符串,添加串 |
|
||
|
||
返回:void
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s := "申万";
|
||
appendStr(s, "采掘");
|
||
return s; // 输出:申万采掘
|
||
```
|
||
|
||
## `getChar(s, index)`
|
||
|
||
声明:function
|
||
|
||
取字符串/二进制流中相应位置的ascii码。Char为0-255之间的整数类型
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ------------------- |
|
||
| `s` | string | 字符串/二进制,源串 |
|
||
| `index` | integer | 整数,取数位置 |
|
||
|
||
返回:char
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
arr := getChar("i am a student", 9);
|
||
return arr; // 输出: 116
|
||
```
|
||
|
||
## `lowerCase(s)`
|
||
|
||
声明:function
|
||
|
||
将字符串S转换成小写并返回
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return lowerCase("万科A");
|
||
// 输出: 万科a
|
||
```
|
||
|
||
## `val(s, v, code)`
|
||
|
||
声明:function
|
||
|
||
将一个字符串S转换成实数V,如果成功,则Code置0,否则Code表示转换不成功的字符的位置
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------ |
|
||
| `s` | string | 字符串 |
|
||
| `v` | real | 实数,输出值 |
|
||
| `code` | integer | 整数,输出值 |
|
||
|
||
返回:any
|
||
|
||
### 示例
|
||
|
||
范例一:
|
||
|
||
```tsl
|
||
val("1.1424E+0002", v, code);
|
||
return v; // 输出:114.24
|
||
```
|
||
|
||
范例二:
|
||
|
||
```tsl
|
||
// 返回错误信息:在转换到第6位字符时不成功。
|
||
val("1.142aE+0002", v, code);
|
||
return array(v, code); // 输出:array(1.142,6)
|
||
```
|
||
|
||
## `trimRight(s)`
|
||
|
||
声明:function
|
||
|
||
去掉尾空格以及控制字符的字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return trimRight("Hello! \r\n Tinysoft ");
|
||
{输出字符串
|
||
" Hello!
|
||
Tinysoft "
|
||
}
|
||
```
|
||
|
||
## `trimLeft(s)`
|
||
|
||
声明:function
|
||
|
||
去掉首空格以及控制字符的字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return trimLeft("Hello! \r\n Tinysoft ");
|
||
{输出字符串
|
||
"Hello!
|
||
Tinysoft "
|
||
}
|
||
```
|
||
|
||
## `strToIntDef(s, default)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为整数。如果转换失败,则返回Default值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ---------------------------- |
|
||
| `s` | string | 字符串。需转换的字符串 |
|
||
| `default` | integer | 整数。转换失败时返回的默认值 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return strToIntDef("12", 1); // 输出: 12
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return strToIntDef("test", 1); // 输出: 1
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return strToIntDef("0x12", 1); // 输出:18
|
||
```
|
||
|
||
## `formatFloat(format, value)`
|
||
|
||
声明:function
|
||
|
||
将实数Value根据参数Format设定格式转换成字符串返回
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------ | -------------- |
|
||
| `format` | string | 字符串,格式串 |
|
||
| `value` | real | 实数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return formatFloat('0.000E+00', 23224); // 科学计数
|
||
// 输出字符串:"2.322E+04"
|
||
```
|
||
|
||
```tsl
|
||
return formatFloat('##,###.00', 123); // 千分位 + 两位小数
|
||
// 输出字符串:"123.00"
|
||
```
|
||
|
||
```tsl
|
||
return formatFloat('00,000.00', 123); // 零填充
|
||
// 输出字符串:"00,123.00"
|
||
```
|
||
|
||
## `strToCurrDef(s, default)`
|
||
|
||
声明:function
|
||
|
||
将数字字符串S转换成实数返回,字符串中不允许有千分号。如果转换没有成功,则返回参数Default指定的默认值。小数位数与设置的系统参数相关,但是最大有效小数位为4位,超过四位小数的处理在不同的版本处理可能存在不一致的地方。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | -------- | ------------ |
|
||
| `s` | string | 字符串 |
|
||
| `default` | currency | 实数,默认值 |
|
||
|
||
返回:currency
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return strToCurrDef('1321.233', 3);
|
||
// 输出:1321.233
|
||
```
|
||
|
||
## `strToFloatDef(s, default)`
|
||
|
||
声明:function
|
||
|
||
将数字字符串S转换成实数返回,字符串中不允许有千分号。如果转换没有成功,则返回参数Default指定的默认值
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ------------ |
|
||
| `s` | string | 字符串 |
|
||
| `default` | real | 实数,默认值 |
|
||
|
||
返回:real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return strToFloatDef('a', 2);
|
||
// 输出:2
|
||
```
|
||
|
||
## `tryStrToInt(s, value)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为32位整数。若转换成功,转换值通过Value输出。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ----------------------------------------------- |
|
||
| `s` | string | 字符串。需转换的字符串 |
|
||
| `value` | integer | 变参。转换成功,为转换后的整数;否则,为NIL值。 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:转换成功
|
||
|
||
```tsl
|
||
ret := tryStrToInt("12", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出: 12
|
||
```
|
||
|
||
范例02:转换失败
|
||
|
||
```tsl
|
||
ret := tryStrToInt("test", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出: "转换失败!"
|
||
```
|
||
|
||
范例03:十六进制格式字符串的转换
|
||
|
||
```tsl
|
||
ret := tryStrToInt("0x12", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出:18
|
||
```
|
||
|
||
## `floatToStr(value)`
|
||
|
||
声明:function
|
||
|
||
将实数转换成字符串类型。和FloatToStrne的区别:在处理浮点数据时,FloatToStr的结果会输出为1E15等格式
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---- |
|
||
| `value` | real | 实数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return floatToStr(23.4);
|
||
// 输出字符串:"23.4"
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return floatToStr(1E15);
|
||
// 大数量级数据,输出:"1E15"
|
||
```
|
||
|
||
## `tryStrToFloat(s, value)`
|
||
|
||
声明:function
|
||
|
||
将数字字符串S转换成实数存到参数Value中,字符串中不允许有千分号。如果转换成功返回真,否则返回假。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------ | ---------------------------- |
|
||
| `s` | string | 字符串,需要转换的数字字符串 |
|
||
| `value` | real | 实数,输出值 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
tryStrToFloat('321.23', s);
|
||
return s; // 输出:321.23
|
||
```
|
||
|
||
## `formatCurr(format, value)`
|
||
|
||
声明:function
|
||
|
||
将实数Value根据参数Format设定格式转换成字符串返回
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | -------- | -------------- |
|
||
| `format` | string | 字符串,格式串 |
|
||
| `value` | currency | 实数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return formatCurr('0.000E+00', 232.24);
|
||
// 输出:2.322E+02
|
||
```
|
||
|
||
## `tryStrToCurr(s, value)`
|
||
|
||
声明:function
|
||
|
||
将数字字符串S转换成实数存到参数Value中,如果转换成功返回真,否则返回假。最大有效小数位为4位,超过四位小数的处理在不同的版本处理可能存在不一致的地方。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | -------- | ------ |
|
||
| `s` | string | 字符串 |
|
||
| `value` | currency | 实数 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
tryStrToCurr('1321.2333', s);
|
||
return s;
|
||
// 输出:1321.2333
|
||
```
|
||
|
||
## `boolToStr(s)`
|
||
|
||
声明:function
|
||
|
||
将布尔型转换成字符串类型并返回。参数UseBoolStrs一般为假,如果B为真,函数返回'-1',如果B为假,返回'0'。若想返回’True’与’False’的结果可用BoolToStr2实现。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ---------------------------------- |
|
||
| `s` | string | 数字字符串Default:布尔型,一般为假 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return boolToStr(1>2, 0);
|
||
// 输出:0
|
||
```
|
||
|
||
## `currToStr(value)`
|
||
|
||
声明:function
|
||
|
||
将Currency型的实数转换成字符串类型返回
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | -------- | ---- |
|
||
| `value` | currency | 实数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return currToStr(23.24);
|
||
// 输出字符串:"23.24"
|
||
```
|
||
|
||
## `tryStrToBool(s, value)`
|
||
|
||
声明:function
|
||
|
||
如果S为'0',则参数Value置为假,如果S是非0的数字串,则参数Value置为真。如果转换成功,函数返回真,否则返回假
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------ | -------------- |
|
||
| `s` | string | 数字字符串 |
|
||
| `value` | bool | 布尔型,输出值 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
tryStrToBool("12", s);
|
||
return s; // 输出: 1
|
||
```
|
||
|
||
## `isValidIdent(ident)`
|
||
|
||
声明:function
|
||
|
||
返回字符串Ident是否可以作为一个合法的标识符号。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------ | ------ |
|
||
| `ident` | string | 字符串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return isValidIdent('a0ffh2');
|
||
// 输出: 1
|
||
```
|
||
|
||
## `strToBoolDef(s, default)`
|
||
|
||
声明:function
|
||
|
||
如果S为'0',返回假,如果是非0的数字串,则返回真,如果转换不成功,则返回Default指定的值
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ---------------- |
|
||
| `s` | string | 数字字符串 |
|
||
| `default` | bool | 整数,默认返回值 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return strToBoolDef("12", 3);
|
||
// 输出: 1
|
||
```
|
||
|
||
## `intToStr(value)`
|
||
|
||
声明:function
|
||
|
||
整数Value转换成字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ---- |
|
||
| `value` | integer | 整数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return intToStr(43);
|
||
// 输出:"43"
|
||
```
|
||
|
||
## `sysEncodecryptStr(s, t)`
|
||
|
||
声明:function
|
||
|
||
对字符串进行加密。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------- | ------------------------ |
|
||
| `s` | string | 字符串,需要被加密的源串 |
|
||
| `t` | integer | 整数,选择加密类型 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s := "Server=127.0.0.1;Database=tsBase;Uid=TinySoft;Pwd=admin;";
|
||
encode_s := sysEncodecryptStr(s, 0);
|
||
return encode_s;
|
||
// 返回字符串:_ENCODE_3A364432572518291B2C02321C2C0233084C2D59385A3B482D10641755344722194C25417C28412F56056A0C78431364003D5C38553C5269
|
||
```
|
||
|
||
## `strToInt64Def(s, default)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为64位整数。如果转换失败,则返回Default值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ---------------------------- |
|
||
| `s` | string | 字符串。需转换的字符串 |
|
||
| `default` | int64 | 整数。转换失败时返回的默认值 |
|
||
|
||
返回:int64
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return strToInt64Def("12", 1); // 输出: 12L
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return strToInt64Def("test", 1); // 输出: 1L
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return strToInt64Def("0x12", 1); // 输出:18L
|
||
```
|
||
|
||
## `tryStrToInt64(s, value)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为64位整数。若转换成功,转换值通过Value输出。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---------- | ----------------------------------------------- |
|
||
| `s` | string | 字符串。需转换的字符串 |
|
||
| `value` | int64\|nil | 变参。转换成功,为转换后的整数;否则,为NIL值。 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:转换成功
|
||
|
||
```tsl
|
||
ret := tryStrToInt64("12", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出: 12L
|
||
```
|
||
|
||
范例02:转换失败
|
||
|
||
```tsl
|
||
ret := tryStrToInt64("test", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出: "转换失败!"
|
||
```
|
||
|
||
范例03:十六进制格式字符串的转换
|
||
|
||
```tsl
|
||
ret := tryStrToInt64("0x12", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出:18L
|
||
```
|
||
|
||
## `strToInt32Def(s, default)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为32位整数。如果转换失败,则返回Default值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ---------------------------- |
|
||
| `s` | string | 字符串。需转换的字符串 |
|
||
| `default` | integer | 整数。转换失败时返回的默认值 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return strToInt32Def("12", 1); // 输出: 12
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return strToInt32Def("test", 1); // 输出: 1
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return strToInt32Def("0x12", 1); // 输出:18
|
||
```
|
||
|
||
## `tryStrToInt32(s, value)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为32位整数。若转换成功,转换值通过Value输出。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------------ | ----------------------------------------------- |
|
||
| `s` | string | 字符串。需转换的字符串 |
|
||
| `value` | integer\|nil | 变参。转换成功,为转换后的整数;否则,为NIL值。 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:转换成功
|
||
|
||
```tsl
|
||
ret := tryStrToInt32("12", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出: 12
|
||
```
|
||
|
||
范例02:转换失败
|
||
|
||
```tsl
|
||
ret := tryStrToInt32("test", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出: "转换失败!"
|
||
```
|
||
|
||
范例03:十六进制格式字符串的转换
|
||
|
||
```tsl
|
||
ret := tryStrToInt32("0x12", value);
|
||
if ret then
|
||
return value;
|
||
else
|
||
return "转换失败!";
|
||
// 输出:18
|
||
```
|
||
|
||
## `ansiContainsText(a_text, a_sub_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串Atext是否包含另一个字符串ASubText。如果包含,就返回真,否则返回假。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return ansiContainsText(text, 'Abcd');
|
||
// 输出:1,包含
|
||
```
|
||
|
||
## `ansiStartsText(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return ansiStartsText('Abc', text);
|
||
// 输出:1
|
||
```
|
||
|
||
## `ansiEndsText(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return ansiEndsText('Efg', text);
|
||
// 输出:1
|
||
```
|
||
|
||
## `ansiContainsStr(a_text, a_sub_text)`
|
||
|
||
声明:function
|
||
|
||
判定指定的字符串AsubTexts是否是Atext字符串的子串。返回布尔型真假值,字符串AsubTexts是Atext字符串的子串,就返回真,否则返回假
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_sub_text` | string | 字符串型,子串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_text := 'abcdefg';
|
||
return ansiContainsStr(a_text, 'Bcd');
|
||
// 输出:1
|
||
```
|
||
|
||
## `ansiStartsStr(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。与AnsiStartsText函数不同,字符串的匹配是大小写敏感的
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
atext := 'abcdefg';
|
||
return ansiStartsStr('abcd', atext);
|
||
// 输出:1
|
||
```
|
||
|
||
## `ansiEndsStr(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。与AnsiEndsText函数不同,字符串的匹配是大小写敏感的
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return ansiEndsStr('efg', text);
|
||
// 输出:1
|
||
```
|
||
|
||
## `stuffString(a_text, a_start, alength, a_sub_text)`
|
||
|
||
声明:function
|
||
|
||
字符串重组函数。将指定的字符串Atext的第AStart个字符开始以后的ALength个字符用AsubText字符串替换掉,得到一个新的字符串返回。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------- | ------------------------------------------------------------------------- |
|
||
| `a_text` | string | 字符串类型,源串。 |
|
||
| `a_start` | integer | 整数,表明从第几个字符串开始被替换,1代表第一个字符,2代表第2个,以次类推 |
|
||
| `alength` | integer | 非负整数,表明替换几个连续的字符,如果为0,则直接插入AsubText字符串。 |
|
||
| `a_sub_text` | string | 字符串类型,替换原的内容 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
atext := "Here will be instead by \'HERE\'";
|
||
a_sub_text := "HERE";
|
||
return stuffString(atext, 1, 4, a_sub_text);
|
||
// 输出:HERE will be instead by ‘HERE’
|
||
```
|
||
|
||
## `ansiReplaceText(a_text, a_from_text, a_to_text)`
|
||
|
||
声明:function
|
||
|
||
字符串的部分替换。将一个字符串Atext的其中的AFromText部分替换为AToText部分。本函数支持多语言。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ------ | ---------------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_from_text` | string | 字符串类型,被替换内容 |
|
||
| `a_to_text` | string | 字符串类型,替换内容 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_text := "First will be instead by \'Final\'";
|
||
a_from_text := "First";
|
||
a_to_text := "FINAL";
|
||
return ansiReplaceText(a_text, a_from_text, a_to_text);
|
||
// 输出字符串:FINALwill be instead by 'Final'
|
||
// 输出:Final will be instead by F
|
||
```
|
||
|
||
## `ansiReplaceStr(a_text, a_from_text, a_to_text)`
|
||
|
||
声明:function
|
||
|
||
字符串的部分替换。将一个字符串Atext的其中的AFromText部分替换为AToText部分。与AnsiEndsText函数不同,字符串的匹配是大小写敏感的。本函数支持多语言。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ------ | ---------------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_from_text` | string | 字符串类型,被替换内容 |
|
||
| `a_to_text` | string | 字符串类型,替换内容 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_text := "Big will be replaced by \'BIG\', but big won\'t be replaced by \'BIG\'.";
|
||
a_from_text := "Big";
|
||
a_to_text := "BIG";
|
||
return ansiReplaceStr(a_text, a_from_text, a_to_text);
|
||
// 输出:BIG will be replaced by 'BIG', but big won't be replaced by 'BIG'.
|
||
```
|
||
|
||
## `replaceText(a_text, a_from_text, a_to_text)`
|
||
|
||
声明:function
|
||
|
||
字符串的部分替换。将一个字符串Atext中第一次遍历时存在的AFromText全部替换为AToText部分。本函数不支持多语言。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ------ | ---------------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_from_text` | string | 字符串类型,被替换内容 |
|
||
| `a_to_text` | string | 字符串类型,替换内容 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_text := "The first letter will be replaced by \'one\', but the second letter won't.";
|
||
a_from_text := "letter";
|
||
a_to_text := "one";
|
||
return replaceText(a_text, a_from_text, a_to_text);
|
||
// 输出:The first one will be replaced by 'one', but the second one won't.n
|
||
```
|
||
|
||
## `replaceStr(a_text, a_from_text, a_to_text)`
|
||
|
||
声明:function
|
||
|
||
字符串的部分替换。将一个字符串Atext中第一次遍历时存在的AFromText全部替换为AToText部分。与AnsiEndsText函数不同,字符串的匹配是大小写敏感的。本函数不支持多语言。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ------ | ---------------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_from_text` | string | 字符串类型,被替换内容 |
|
||
| `a_to_text` | string | 字符串类型,替换内容 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_text := "The First LETTER in uppercase won\'t be replaced by \'one\', but the Second letter in lowercase will.";
|
||
a_from_text := "letter";
|
||
a_to_text := "one";
|
||
return replaceStr(a_text, a_from_text, a_to_text);
|
||
// 输出:The First LETTER in uppercase won't be replaced by 'one', but the Second one in lowercase will.
|
||
```
|
||
|
||
## `reverseString(s)`
|
||
|
||
声明:function
|
||
|
||
返回字符串S的反序
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ---------- |
|
||
| `s` | string | 字符串类型 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return reverseString('abcde1234');
|
||
// 返回字符串:4321edcba
|
||
```
|
||
|
||
## `dupeString(a_text, a_count)`
|
||
|
||
声明:function
|
||
|
||
返回将指定的字符串AText重复ACount次后的字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ---------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_count` | integer | 整数,重复的次数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s := dupeString('Ha', 5);
|
||
return s;
|
||
// 输出:表示将S的值变为'HaHaHaHaHa'
|
||
```
|
||
|
||
## `startsText(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。可以处理非MBCS的原始字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return startsText('Abc', text);
|
||
// 输出:1
|
||
// 差异说明:对空字符串,Windows 判定为 1、Linux 为 0(如 startsText("", "A"));其它表现无差别。
|
||
```
|
||
|
||
## `endsText(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。可以处理非MBCS的原始字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return endsText('Efg', text);
|
||
// 输出:1
|
||
// 差异说明:对空字符串,Windows 判定为 1、Linux 为 0(如 endsText("", "A"));其它表现无差别。
|
||
```
|
||
|
||
## `containsStr(a_text, a_sub_text)`
|
||
|
||
声明:function
|
||
|
||
判定指定的字符串AsubTexts是否是Atext字符串的子串。返回布尔型真假值,字符串AsubTexts是Atext字符串的子串,就返回真,否则返回假。可以处理非MBCS的原始字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
| `a_sub_text` | string | 字符串型,子串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a := '2020Tinysoft 天软';
|
||
b := 'tinysoft';
|
||
c := 'Tinysoft';
|
||
return array(containsStr(a, b), containsStr(a, c));
|
||
// 输出:array(0,1)
|
||
```
|
||
|
||
## `startsStr(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。可以处理非MBCS的原始字符串。与StartsText函数不同,字符串的匹配是大小写敏感的。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
atext := 'abcdefg';
|
||
return startsStr('abcd', atext);
|
||
// 输出:1
|
||
```
|
||
|
||
## `endsStr(a_sub_text, a_text)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。可以处理非MBCS的原始字符串。与EndsText函数不同,字符串的匹配是大小写敏感的。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `a_sub_text` | string | 字符串类型,子串 |
|
||
| `a_text` | string | 字符串类型,源串 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
text := 'abcdefg';
|
||
return endsStr('efg', text);
|
||
// 输出:1
|
||
```
|
||
|
||
## `stuffbString(a_text, a_star, alength, a_sub_text)`
|
||
|
||
声明:function
|
||
|
||
字符串重组函数。将指定的字符串Atext的第AStart个字符开始以后的ALength个字符用AsubText字符串替换掉,得到一个新的字符串返回。可以处理非MBCS的原始字符串。一个汉字两个字节。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------- | ----------------------------------------------------------------------- |
|
||
| `a_text` | string | 字符串类型,源串。 |
|
||
| `a_star` | integer | 整数,表明从第几个字节开始被替换,1代表第一个字节,2代表第2个,以次类推 |
|
||
| `alength` | integer | 非负整数,表明替换几个连续的字节,如果为0,则直接插入AsubText字符串 |
|
||
| `a_sub_text` | string | 字符串类型,替换原的内容 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
atext := "Here will be instead by \'HERE\'";
|
||
a_sub_text := "HERE";
|
||
return stuffbString(atext, 1, 4, a_sub_text);
|
||
// 输出:HERE will be instead by ‘HERE’
|
||
```
|
||
|
||
## `soundEx(a_text, alength)`
|
||
|
||
声明:function
|
||
|
||
返回一个字符串,这个字符串是用来表明AText的发音的。通过转化为发音特征的字符串(SoundEx Codes),可以比较两个字符串是否发音相同或近似。Alength是声明最大的发音长度,一般定义为4
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | -------------------- |
|
||
| `a_text` | string | 字符串数组,发音源串 |
|
||
| `alength` | integer | 整数,且大于1 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
test_str1 := "sun";
|
||
s1 := soundEx(test_str1, 4);
|
||
test_str2 := "sum";
|
||
s2 := soundEx(test_str2, 4);
|
||
test_str3 := "test";
|
||
s3 := soundEx(test_str3, 4);
|
||
return array(s1, s2, s3);
|
||
// 输出:array("S500","S500","T230")
|
||
```
|
||
|
||
## `soundexInt(a_text, alength)`
|
||
|
||
声明:function
|
||
|
||
返回表示AText的发音的整数。整数是根据通过发音特征的字符串(SoundEx Codes)唯一转化来的,和字符串长度无关。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ----------------------------- |
|
||
| `a_text` | string | 字符串数组,源串 |
|
||
| `alength` | integer | 整数,在1和8之间,一般定义为4 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
test_str1 := "sun";
|
||
s1 := soundexInt(test_str1, 4);
|
||
test_str2 := "sum";
|
||
s2 := soundexInt(test_str2, 4);
|
||
test_str3 := "test";
|
||
s3 := soundexInt(test_str3, 4);
|
||
return array(s1, s2, s3);
|
||
// 输出:array(208597,208597,218929)
|
||
```
|
||
|
||
## `soundexProc(a_text, a_other)`
|
||
|
||
声明:function
|
||
|
||
比较两个字符串的发音是否足够相似。根据AText和Aother转成发音码以后比较前面四个发音码。如果两个发音码相同,返回真,否则返回假
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ----------------------- |
|
||
| `a_text` | string | 字符串,比较发音字符串1 |
|
||
| `a_other` | string | 字符串,比较发音字符串1 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return soundexProc("sun", "sum");
|
||
// 输出:1
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return soundexProc("sun", "fun");
|
||
// 输出:0
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return soundexProc("transaction", "transact");
|
||
// 输出:1
|
||
```
|
||
|
||
## `ansiResemblesText(a_text, a_other)`
|
||
|
||
声明:function
|
||
|
||
判别一个字符串Atext是否相似于另一个字符串。如果足够相似,就返回真,否则返回假。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------ | ---------- |
|
||
| `a_text` | string | 字符串类型 |
|
||
| `a_other` | string | 字符串类型 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return ansiResemblesText("sun", "sum");
|
||
// 输出:1
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return ansiResemblesText("sun", "fun");
|
||
// 输出:0
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return ansiResemblesText("transaction", "transact");
|
||
// 输出:1
|
||
```
|
||
|
||
## `getLikeFlag()`
|
||
|
||
声明:function
|
||
|
||
返回Like操作符号的正则表达式的默认控制状态。即获得SetLikeFlag设置的状态,默认为1。
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s := "ParseRegExpr 2011 \r\n ShenZhenTinysoft (TSL)";
|
||
reg := "(\\d+).*(tinysoft)";
|
||
setLikeFlag(0b0001+0x0010); // 大小写无关+使 '.' 特殊字符匹配任意字符
|
||
r := s like reg;
|
||
return getLikeFlag(); // 获取当前正则控制符状态
|
||
// 返回17
|
||
```
|
||
|
||
## `setLikeFlag(flag)`
|
||
|
||
声明:function
|
||
|
||
设置Like操作符号的正则表达式默认控制状态。默认值为1。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | -------------------- |
|
||
| `flag` | integer | 正则表达式控制模式。 |
|
||
|
||
控制模式取值:
|
||
|
||
| 取值 | 说明 |
|
||
| -------- | ------------------------------------------------------------------------------------------------------------ |
|
||
| `0b0001` | 大小写无关 |
|
||
| `0b0010` | 多行开关打开 |
|
||
| `0b0100` | 不理会^标志 |
|
||
| `0b1000` | 不理会$标志 |
|
||
| `0x0010` | REG_DOTALL;使 '.' 特殊字符匹配任意字符,包括换行符;如果没有这个标识,'.' 将匹配 除去 换行符以外的任意字符。 |
|
||
| `0x0100` | REG_NOTEMPTY;禁止匹配空字符串 |
|
||
| `0x0200` | REG_UNGREEDY;非贪婪模式 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s := "ParseRegExpr 2011 \r\n ShenZhenTinysoft (TSL)";
|
||
reg := "(\\d+).*(tinysoft)";
|
||
setLikeFlag(0b0001+0x0010); // 大小写无关+使 '.' 特殊字符匹配任意字符
|
||
return s like reg;
|
||
// 输出:1
|
||
```
|
||
|
||
## `nextCharIndex(s, index)`
|
||
|
||
声明:function
|
||
|
||
返回指定字符的开始字节的下一个字符的字节开始位置。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ------------------------ |
|
||
| `s` | string | 字符串,源串 |
|
||
| `index` | integer | 整数,字符的开始字节位置 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// ‘软’的开始字节是3,下一个字符是‘T’,‘T’的开始字节位置是5
|
||
s := "天软Tinysoft Statistical analysis Language";
|
||
return nextCharIndex(s, 3);
|
||
// 输出:5
|
||
```
|
||
|
||
## `ansiToUtf8(s)`
|
||
|
||
声明:function
|
||
|
||
转换为UTF8编码的字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------ |
|
||
| `s` | string | 字符串,Ansi字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return ansiToUtf8('2011 tinysoft天软科技');
|
||
// 返回字符串:2011 tinysoft天软科技
|
||
```
|
||
|
||
## `utf8ToAnsi(s)`
|
||
|
||
声明:function
|
||
|
||
UTF8串转为Ansi串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | -------------------------------------------- |
|
||
| `s` | string | 字符串,UTF8编码字符串在Ansi编码中的显示字符 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return utf8ToAnsi ('2011 tinysoft天软科技');
|
||
// 返回字符串:2011 tinysoft天软科技
|
||
```
|
||
|
||
## `charToByteIndex(s, index)`
|
||
|
||
声明:function
|
||
|
||
字符索引到字节索引的转换。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | -------------- |
|
||
| `s` | string | 字符串,源串 |
|
||
| `index` | integer | 整数,字符位置 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 返回第30字符对应的字节位置
|
||
// 其中‘天软’占有4个字节,其余每个字符占1个字节
|
||
s := "天软Tinysoft Statistical analysis Language";
|
||
return charToByteIndex(s, 30);
|
||
// 输出:32
|
||
```
|
||
|
||
## `byteToCharLen(s, max_len)`
|
||
|
||
声明:function
|
||
|
||
判断字符流S中最多MaxLen的字节中所包含的字符数量。指定最多字节空间后,S字符串的字符个数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ---------------- |
|
||
| `s` | string | 字符串,源串 |
|
||
| `max_len` | integer | 整数,最大字节数 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 指定最多字节为30后,查找S中30个字节中有多少个字符,
|
||
// 其中‘天软’占有4个字节,所以30个字节中,S有28个字符。
|
||
s := "天软Tinysoft Statistical analysis Language";
|
||
b1 := byteToCharLen(s, 30);
|
||
return b1;
|
||
// 输出:28
|
||
```
|
||
|
||
## `charToByteLen(s, max_len)`
|
||
|
||
声明:function
|
||
|
||
判断字符串S中最多MaxLen的字符中占有的字节数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | -------------- |
|
||
| `s` | string | 字符串,源串 |
|
||
| `max_len` | integer | 整数,字符个数 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 在S字符串中取30个字符,统计其所占的字节数。
|
||
// 其中‘天软’占有4个字节,其余每个字符占1个字节,由此,30个字符占有32个字节
|
||
s := "天软Tinysoft Statistical analysis Language";
|
||
b1 := charToByteLen(s, 30);
|
||
return b1;
|
||
// 输出:32
|
||
```
|
||
|
||
## `charLength(s, index)`
|
||
|
||
声明:function
|
||
|
||
指定位置的字符所包含的字节数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | -------------- |
|
||
| `s` | string | 字符串,源串 |
|
||
| `index` | integer | 整数,字符位置 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 第2个字符‘软’的字节数
|
||
s := "天软Tinysoft Statistical analysis Language";
|
||
return charLength(s, 2);
|
||
// 输出:2
|
||
```
|
||
|
||
## `byteToCharIndex(s, index)`
|
||
|
||
声明:function
|
||
|
||
字节索引到字符索引的转换。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | -------------- |
|
||
| `s` | string | 字符串,源串 |
|
||
| `index` | integer | 整数,字节位置 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 返回第30字节位置时,是第几个字符位置
|
||
// 其中‘天软’占有4个字节,其余每个字符占1个字节
|
||
s := "天软Tinysoft Statistical analysis Language";
|
||
return byteToCharIndex(s, 30);
|
||
// 输出:28
|
||
```
|
||
|
||
## `byteType(s, index)`
|
||
|
||
声明:function
|
||
|
||
返回字符串的指定位置的字符的类型,类型为:0 单字节字符,1 多字节的引导字节, 2 多字节的结尾字节。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | -------------------- |
|
||
| `s` | string | 字符串, |
|
||
| `index` | integer | 整数,指定字符的位置 |
|
||
|
||
返回:tmbcsbytetype
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
// 单字节字符‘t’
|
||
return byteType("2011 tinysoft", 6);
|
||
// 0
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
// 多字节字符‘天’
|
||
return byteType("2011 tinysoft天软", 14);
|
||
// 1
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
// 多字节字符‘软’,且为最后一个字符
|
||
return byteType("2011 tinysoft天软", 15);
|
||
// 2
|
||
```
|
||
|
||
范例04:
|
||
|
||
```tsl
|
||
// 单字节字符‘1’,最后一个字符
|
||
return byteType("2011 ", 4);
|
||
// 0
|
||
```
|
||
|
||
## `unicodeEsc(s)`
|
||
|
||
声明:function
|
||
|
||
把一个字符串转换成为%uxxxx的Unicode编码串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------ |
|
||
| `s` | string | 字符串,Ansi字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return echo unicodeEsc('2011 tinysoft天软科技');
|
||
// 返回字符串:2011%20tinysoft%u5929%u8F6F%u79D1%u6280
|
||
```
|
||
|
||
## `floattoStrw(value)`
|
||
|
||
声明:function
|
||
|
||
将实数转换成宽字节字符串类型。和FloatToStrneW的区别:在处理大数量级数据(如1E15、10^15等)时,FloatToStrW的结果会输出为1E15等格式。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---- |
|
||
| `value` | real | 实数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return floattoStrw(1234.1234);
|
||
// 输出:L"1234.1234"
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return floattoStrw(1E15);
|
||
// 大数量级数据,输出:L"1E15"
|
||
```
|
||
|
||
## `unUnicodeEsCw(s)`
|
||
|
||
声明:function
|
||
|
||
把一个%uxxxx编码方式的Unicode编码串解码,解码后是一个宽字节的字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ----------------------------------------------- |
|
||
| `s` | string | 字符串,Unicode编码字符串在Ansi编码中的显示字符 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return unUnicodeEsCw('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
|
||
// ’ 2011 tinysoft天软科技’
|
||
```
|
||
|
||
## `currtoStrw(value)`
|
||
|
||
声明:function
|
||
|
||
将Currency型的实数转换成宽字节字符串类型返回
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | -------- | ---- |
|
||
| `value` | currency | 实数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return currtoStrw(23.24);
|
||
// 输出字符串:"23.24"
|
||
```
|
||
|
||
## `inttostrw(value)`
|
||
|
||
声明:function
|
||
|
||
整数Value转换成宽字节字符串,与IntToStr的区别是,intTostrw返回的是宽字节字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ---- |
|
||
| `value` | integer | 整数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s := inttostrw(2);
|
||
return array(ifString(s), ifwstring(s));
|
||
// 输出:array(0,1) 说明返回结果串s为宽字节串,而非多字节字符串。
|
||
```
|
||
|
||
## `multiByteToUnicodew(s, cp)`
|
||
|
||
声明:function
|
||
|
||
把一个多字节字符串转换为Unicode编码的宽字节字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------- | ---------------------------------- |
|
||
| `s` | string | 字符串,多字节字符串 |
|
||
| `cp` | integer | 整数,代码页。中文为936或者54936。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return multiByteToUnicodew('2020 Tinysoft 天软科技', 936);
|
||
// 返回宽字节字符串:2020 Tinysoft 天软科技 即L’ 2020 Tinysoft 天软科技’
|
||
```
|
||
|
||
## `utf8ToUnicode(s)`
|
||
|
||
声明:function
|
||
|
||
UTF8串转为Unicode串。Unicode串为宽字节字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ----------------------------------------------- |
|
||
| `s` | string | 字符串,UTF8编码字符串在Unicode编码中的显示字符 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return utf8ToUnicode ('2011 tinysoft天软科技');
|
||
// 返回双字节字符串:2011 tinysoft天软科技
|
||
```
|
||
|
||
## `exportjsonstring(data, n)`
|
||
|
||
声明:function
|
||
|
||
将TSL结构数据转换为json串。对于非ASCII编码的文字转换为转义字符。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ----------------------------------------------------------------------------- |
|
||
| `data` | | 天软数据,任意数据类型。 |
|
||
| `n` | integer | 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:将天软含中文的字符串转化为json串
|
||
|
||
```tsl
|
||
s := "万科A";
|
||
return exportJsonString(s);
|
||
// 返回字符串:"\u4E07\u79D1A"
|
||
```
|
||
|
||
范例02:将数组转化为json串
|
||
|
||
```tsl
|
||
s := array("A": 123, "B": "Tinysof 2026");
|
||
return exportJsonString(s);
|
||
// 返回字符串:{\"A\":123,\"B\":\"Tinysof 2026\"}
|
||
```
|
||
|
||
范例03:将数组转化为json串,并保留2位小数
|
||
|
||
```tsl
|
||
s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
|
||
return exportJsonString(s, 2);
|
||
// 返回字符串:[[1.32,2.51],["Tinysoft\u5929\u8F6F","\u5929\u8F6F\u79D1\u6280"]]
|
||
```
|
||
|
||
## `unUnicodeEsc(s)`
|
||
|
||
声明:function
|
||
|
||
把一个%uxxxx编码方式的Unicode编码串解码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ----------------------------------------------- |
|
||
| `s` | string | 字符串,Unicode编码字符串在Ansi编码中的显示字符 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return unUnicodeEsc('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
|
||
// 输出:2011 tinysoft天软科技
|
||
```
|
||
|
||
## `exportJsonStringUtf8(data, n)`
|
||
|
||
声明:function
|
||
|
||
将天软数组转换为UTF8编码的Json串,解决与第三方交互时的转码问题。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ----------------------------------------------------------------------------- |
|
||
| `data` | | 天软数据,任意数据类型。 |
|
||
| `n` | integer | 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
a := array(
|
||
("StockID":"SZ000002","StockName":"万 科A","date":"2020-09-01","close":27.22),
|
||
("StockID":"SZ000002","StockName":"万 科A","date":"2020-09-02","close":27.52));
|
||
return exportJsonStringUtf8(a);
|
||
// 返回字符串:
|
||
// [{"StockID":"SZ000002","StockName":"万 科A","date":"2020-09-01","close":27.22},
|
||
// {"StockID":"SZ000002","StockName":"万 科A","date":"2020-09-02","close":27.52}]
|
||
```
|
||
|
||
范例02:将数组转化为json串,并保留2位小数
|
||
|
||
```tsl
|
||
s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
|
||
return exportJsonStringUtf8(s, 2);
|
||
// 返回字符串:"[[1.32,2.51],[\"Tinysoft\\u6FB6\\u2544\\u848B\",\"\\u6FB6\\u2544\\u848B\\u7EC9\\u621E\\u59A7\"]]"
|
||
```
|
||
|
||
## `exportJsonStringMbcs(data, n)`
|
||
|
||
声明:function
|
||
|
||
将TSL结构数据转换为json串。和ExportJSONString不同的是,该函数不会对中文进行转码处理,保留中文原码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ----------------------------------------------------------------------------- |
|
||
| `data` | | 天软数据,任意数据类型。 |
|
||
| `n` | integer | 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:将天软含中文的字符串转化为json串
|
||
|
||
```tsl
|
||
s := "万科A";
|
||
return exportJsonStringMbcs(s);
|
||
// 返回字符串:"\"万科A\""
|
||
```
|
||
|
||
范例02:将数组转化为json串
|
||
|
||
```tsl
|
||
s := array((1, 'a'), ('Tinysoft天软', '天软科技'));
|
||
return exportJsonStringMbcs(s);
|
||
// 返回字符串:"[[1,\"a\"],[\"Tinysoft天软\",\"天软科技\"]]"
|
||
```
|
||
|
||
范例03:将数组转化为json串,并保留2位小数
|
||
|
||
```tsl
|
||
s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
|
||
return exportJsonStringMbcs(s, 2);
|
||
// 返回字符串:"[[1.32,2.51],[\"Tinysoft天软\",\"天软科技\"]]"
|
||
```
|
||
|
||
## `lengthW(atext)`
|
||
|
||
声明:function
|
||
|
||
返回字符串的长度,支持多字节语言,一个汉字当成一个字符。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------ | -------------------------- |
|
||
| `atext` | string | 字符串,需计算长度的字符串 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
test_str := "Tinysoft lengthW:汉字当成一个字符";
|
||
return lengthW(test_str);
|
||
// 输出:25(包括空格和:)
|
||
```
|
||
|
||
## `midStr(a_text, astart, a_count)`
|
||
|
||
声明:function
|
||
|
||
返回Atext字符串从Astart个字符的位置开始数出ACount个字符组成的字符串。天软字符串下标从1开始。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ------------------------------- |
|
||
| `a_text` | string | 字符串数组,源串 |
|
||
| `astart` | integer | 整数,开始位置,起始位置从1开始 |
|
||
| `a_count` | integer | 整数,截取的字符串个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
test_str := "Tinysoft midStr:支持多字节语言,汉字当成一个字符";
|
||
return midStr(test_str, 10, 30);
|
||
// 输出字符串:“midStr:支持多字节语言,汉字当成一个字符”
|
||
```
|
||
|
||
## `changeFileExt(file_name, extension)`
|
||
|
||
声明:function
|
||
|
||
更改文件的扩展名。该函数并不实际更名指定的文件,其仅仅只是创建一个新的文件名字符串。此函数支持多字节字符集。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ----------------------- |
|
||
| `file_name` | string | 文件名。 |
|
||
| `extension` | string | 新的扩展名,需包含’.’。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 实际D盘的test.tsl没有改变
|
||
return changeFileExt("D:\\test.tsl", ".txt");
|
||
// D:\test.txt
|
||
```
|
||
|
||
## `extractFilePath(file_name)`
|
||
|
||
声明:function
|
||
|
||
返回文件名的驱动器以及目录部分,包含\。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `file_name` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return extractFilePath("D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// D:\Tinysoft\tslweb\web\
|
||
```
|
||
|
||
## `extractFileDir(file_name)`
|
||
|
||
声明:function
|
||
|
||
返回文件名的驱动器以及目录部分,即文件所在的目录,若非驱动根目录则不包含\。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `file_name` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return extractFileDir("D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// D:\Tinysoft\tslweb\web
|
||
// 差异说明
|
||
// 对于路径的处理,在不同系统中存在差异。如Linux中就没有驱动的概念,因此,在处理带驱动的路径时:
|
||
// 如对于根目录的处理extractfiledir("C:\\abc.txt"),Windows中返回”C: \”而Linux中返回”C: ”
|
||
```
|
||
|
||
## `extractFileDrive(file_name)`
|
||
|
||
声明:function
|
||
|
||
返回文件名的驱动器部分。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `file_name` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return extractFileDrive("D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// 输出:D:
|
||
```
|
||
|
||
## `extractFileName(file_name)`
|
||
|
||
声明:function
|
||
|
||
返回文件名的去掉路径后的纯文件名部分。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `file_name` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return extractFileName("D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// 输出:test.tsl
|
||
```
|
||
|
||
## `extractFileExt(file_name)`
|
||
|
||
声明:function
|
||
|
||
返回文件的扩展名部分,其中包括”.”部分。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `file_name` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return extractFileExt("D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// 输出:.tsl
|
||
```
|
||
|
||
## `extractRelativePath(base_name, dest_name)`
|
||
|
||
声明:function
|
||
|
||
返回DestName文件相对于BaseName的相对路径名。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------- |
|
||
| `base_name` | string | 字符串,文件路径及文件名1 |
|
||
| `dest_name` | string | 字符串,文件路径及文件名2 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return extractRelativePath("D:\\test.tsl", "D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// 输出:Tinysoft\tslweb\web\test.tsl
|
||
// 差异说明
|
||
// 由于Linux系统中无盘符概念,所以不支持该功能。
|
||
```
|
||
|
||
## `isPathDelimiter(s, index)`
|
||
|
||
声明:function
|
||
|
||
判断字符串S的Index位置是否是一个’\’符号。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ------------------------ |
|
||
| `s` | string | 字符串,文件路径及文件名 |
|
||
| `index` | integer | 整数,字符串位置 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return isPathDelimiter("D:\\Tinysoft\\tslweb\\web\\test.tsl", 3);
|
||
// 输出:1
|
||
```
|
||
|
||
## `isDelimiter(delimiters, s, index)`
|
||
|
||
声明:function
|
||
|
||
判断字符串S的Index位置是否包含在Delimiters字符串中。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------- | ---------------------- |
|
||
| `delimiters` | string | 字符串,源串 |
|
||
| `s` | string | 字符串,查找字符所在串 |
|
||
| `index` | integer | 整数,指定的字符位置 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return isDelimiter("tinysoft", "2011 tinysoft", 6);
|
||
// 输出:1
|
||
```
|
||
|
||
## `includeTrailingPathDelimiter(s)`
|
||
|
||
声明:function
|
||
|
||
返回加上了’\’结尾的路径。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------------ |
|
||
| `s` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return includeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web");
|
||
// 输出:D:\Tinysoft\tslweb\web\
|
||
```
|
||
|
||
差异说明:与路径中已有的路径分隔符保持一致;当路径中不存在分隔符时,Windows 默认追加 `\`,Linux 默认追加 `/`。如在 Linux 中 `includeTrailingPathDelimiter("/Tinysoft")` 返回 `/Tinysoft/`。
|
||
|
||
## `includeTrailingBackslash(s)`
|
||
|
||
声明:function
|
||
|
||
返回加上了’\’结尾的路径。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------------ |
|
||
| `s` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return includeTrailingBackslash("D:\\Tinysoft\\tslweb\\web");
|
||
// 输出:D:\Tinysoft\tslweb\web\
|
||
```
|
||
|
||
差异说明:与路径中已有的路径分隔符保持一致;当路径中不存在分隔符时,Windows 默认追加 `\`,Linux 默认追加 `/`。如在 Linux 中 `includeTrailingBackslash("/Tinysoft")` 返回 `/Tinysoft/`。
|
||
|
||
## `excludeTrailingPathDelimiter(s)`
|
||
|
||
声明:function
|
||
|
||
去掉路径的’\’结尾。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------------ |
|
||
| `s` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return excludeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web\\");
|
||
// 输出: D:\Tinysoft\tslweb\web
|
||
```
|
||
|
||
## `excludeTrailingBackslash(s)`
|
||
|
||
声明:function
|
||
|
||
去掉路径的’\’结尾。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------------ |
|
||
| `s` | string | 字符串,文件路径及文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return excludeTrailingBackslash("D:\\Tinysoft\\tslweb\\web\\");
|
||
// 输出: D:\Tinysoft\tslweb\web
|
||
```
|
||
|
||
## `lastDelimiter(delimiters, s)`
|
||
|
||
声明:function
|
||
|
||
最后的分隔符在字符串S中的位置。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ---------------- |
|
||
| `delimiters` | string | 字符串,分隔符 |
|
||
| `s` | string | 字符串,文件路径 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return lastDelimiter('\\', "D:\\Tinysoft\\tslweb\\web\\test.tsl");
|
||
// 输出:23
|
||
```
|
||
|
||
## `ansiCompareFileName(s1, s2)`
|
||
|
||
声明:function
|
||
|
||
比较两个文件名,返回>0当S1>S2,=0当S1=S2,<0当S1<S2
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | --------------------- |
|
||
| `s1` | string | 字符串,比较的文件名1 |
|
||
| `s2` | string | 字符串,比较的文件名2 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return ansiCompareFileName('index.tsl', "test.tsl");
|
||
// 输出:-11
|
||
```
|
||
|
||
差异说明:返回值的绝对值大小无实际意义,在不同操作系统中结果也表现不一。Linux 中文件名区分大小写,而 Windows 中不区分,所以对比结果会有差异。如下:
|
||
|
||
范例02:Windows 中(不区分大小写)
|
||
|
||
```tsl
|
||
return ansiCompareFileName("D:\\test\\file1.txt", "D:\\Test\\File1.txt");
|
||
// 结果为0,因为不区分大小写,两文件名一致。
|
||
```
|
||
|
||
范例03:Linux 中(区分大小写)
|
||
|
||
```tsl
|
||
return ansiCompareFileName("/tinysoft/file1.txt", "/Tinysoft/File1.txt");
|
||
// 结果为32,因为区分大小写,两文件名不相等。
|
||
```
|
||
|
||
## `ansiLowerCaseFileName(s)`
|
||
|
||
声明:function
|
||
|
||
返回小写的文件名。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | -------------- |
|
||
| `s` | string | 字符串,文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return ansiLowerCaseFileName("TEST.tsl");
|
||
// 输出:test.tsl
|
||
```
|
||
|
||
## `ansiUpperCaseFileName(s)`
|
||
|
||
声明:function
|
||
|
||
返回大写的文件名。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | -------------- |
|
||
| `s` | string | 字符串,文件名 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return ansiUpperCaseFileName("test.tsl");
|
||
// 输出:TEST.TSL
|
||
```
|
||
|
||
## `ansiFormat(formatstr, v1)`
|
||
|
||
声明:function
|
||
|
||
返回根据formatstr设定的格式将v1,v2,v3…参数连成字符串返回。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------------------- |
|
||
| `formatstr` | string | 格式串,指明后面的参数的输出格式。 |
|
||
| `v1` | any | 各种类型,并对应formatstr中的各种类型 |
|
||
|
||
返回:string
|
||
|
||
## `soundexSimilar(a_text, a_other, a_length)`
|
||
|
||
声明:function
|
||
|
||
判断两个字符串Atext和AOther是否发音相似
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------- | --------------------------------------- |
|
||
| `a_text` | string | 字符串,发音比较字符串1 |
|
||
| `a_other` | string | 字符串,发音比较字符串2 |
|
||
| `a_length` | integer | 判断长度,一般为4,备用参数,暂时无效。 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return soundexSimilar("sun", "sum");
|
||
// 输出:1
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return soundexSimilar("sun", "fun");
|
||
// 输出:0
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return soundexSimilar("return", "result");
|
||
// 输出:0
|
||
```
|
||
|
||
## `soundexCompare(a_text, a_other, a_length)`
|
||
|
||
声明:function
|
||
|
||
比较两个字符串的发音。根据AText和Aother转成发音码以后用AnsiCompareStr函数比较两个发音码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------- | --------------------------------------- |
|
||
| `a_text` | string | 字符串,发音比较字符串1 |
|
||
| `a_other` | string | 字符串,发音比较字符串2 |
|
||
| `a_length` | integer | 判断长度,一般为4,该参数备用,暂时无效 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
return soundexCompare("sun", "sum");
|
||
// 输出:0
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return soundexCompare("sun", "fun");
|
||
// 输出:1
|
||
```
|
||
|
||
范例03:
|
||
|
||
```tsl
|
||
return soundexCompare("result", "return");
|
||
// 输出:-1
|
||
```
|
||
|
||
## `parseRegExpr(reg_expr, parse_text, parse_ctrls, matched, matched_pos, matched_len)`
|
||
|
||
声明:function
|
||
|
||
正则表达式匹配。匹配成功返回 1,并把匹配串及子匹配组(所有匹配)写入 `matched` 数组,把对应位置和长度写入 `matched_pos`、`matched_len` 数组。匹配失败或正则编译出错时,返回字符串类型,内容为失败原因。正则表达式支持 UNICODE 字符串类型。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ---------------- | ---------------------------------------------------------------------- |
|
||
| `reg_expr` | string | 正则表达式,基本兼容 Perl 5 的正则语法 |
|
||
| `parse_text` | string | 需要被匹配的源串 |
|
||
| `parse_ctrls` | string | 正则控制串,按字符组合(见下表),空串表示默认 |
|
||
| `matched` | array of string | 出参,存放匹配成功的串及其中的子串。支持求值宏,最大支持 $99、$` 与 $' |
|
||
| `matched_pos` | array of integer | 出参,存放匹配串及子串所处的位置 |
|
||
| `matched_len` | array of integer | 出参,存放匹配串及子串的长度 |
|
||
|
||
`parse_ctrls` 控制字符:
|
||
|
||
| 字符 | 说明 |
|
||
| ---- | ------------------------------------------------------------------------------------- |
|
||
| `m` | 多行开关:启用时按换行符让每行都有起点/终点;否则整个串只有一个起点与终点 |
|
||
| `i` | 大小写无关 |
|
||
| `b` | NOT_BOL:首行不参与起始位置 `^` 匹配;多行开关下带 `^` 的匹配从第二行开始 |
|
||
| `e` | NOT_EOL:尾行不参与结束位置 `$` 匹配;多行开关下带 `$` 的匹配在最后一行结束位置不参与 |
|
||
| `s` | 单匹配模式,匹配到一个符合条件的即结束 |
|
||
| `r` | 替换开关,启用时参考“定义二” |
|
||
| `a` | REG_DOTALL:使 `.` 匹配任意字符(含换行符);不设时 `.` 不匹配换行符 |
|
||
| `n` | REG_NOSUB:不存储子表达式信息,只返回是否匹配成功 |
|
||
| `E` | REG_NOTEMPTY:禁止匹配空字符串 |
|
||
| `u` | REG_UNGREEDY:非贪婪模式 |
|
||
|
||
返回:bool。1 表示匹配成功,否则返回匹配失败原因(字符串)。
|
||
|
||
### 示例
|
||
|
||
范例01:匹配数字、指定字符串
|
||
|
||
```tsl
|
||
source := "ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
|
||
parseRegExpr("(\\d+).*(Tinysoft)", source, "", result, m_pos, mlen);
|
||
return result;
|
||
// 输出:array(("2011 ShenZhenTinysoft","2011","Tinysoft"))
|
||
```
|
||
|
||
说明:输出中返回匹配的源串 "2011 ShenZhenTinysoft" 以及匹配出来的串 "2011" 和 "Tinysoft"。
|
||
|
||
1. 在匹配串中加中括号 `()` 表示将匹配的结果返回,本例中要返回的是 `(\d+)` 和 `(Tinysoft)` 匹配出来的结果。
|
||
2. `\` 本身是转义字符,所以要用 `\\d` 来表示 `\d` 元字符(匹配一个数字字符)。`\\d+` 表示匹配多个数字字符。
|
||
3. `.` 匹配任意单个字符(除 `\n`)。`.*` 匹配任意多个单个字符;由于 `.*` 没有中括号 `()`,匹配的字符不返回。
|
||
4. `(Tinysoft)` 匹配字符串 Tinysoft 并将其返回。注意,字符大小写敏感。
|
||
|
||
范例02:匹配数字、字符串、带括号的字符串
|
||
|
||
```tsl
|
||
source := "ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
|
||
parseRegExpr("(\\d+).*(Tinysoft) (\\(\\w+\\))", source, "", result, m_pos, mlen);
|
||
return result;
|
||
// 输出:array(("2011 ShenZhenTinysoft (TSL)","2011","Tinysoft","(TSL)"))
|
||
```
|
||
|
||
说明:与范例01相比,新增了对 `()` 的匹配。输出中返回匹配的源串 "2011 ShenZhenTinysoft (TSL)" 以及匹配出来的串 "2011"、"Tinysoft" 和 "(TSL)"。
|
||
|
||
1. `\\(` 和 `\\)` 是对中括号 `()` 的匹配。
|
||
2. `\\w` 表示 `\w` 元字符,匹配包括下划线的任何单词字符。`\\w+` 表示匹配多个任意单词字符。
|
||
|
||
范例03:处理Unicode串-匹配汉字
|
||
|
||
```tsl
|
||
source := L"hello 你好!123"; // unicode串
|
||
reg := L"[一-龥]+"; // 匹配汉字的正则表达式->也是unicode串
|
||
ret := parseRegExpr(reg, source, "", result, m_pos, mlen);
|
||
return result;
|
||
// 输出:array((L"你好"))
|
||
```
|
||
|
||
范例04:通过控制符"u"设置为非贪婪模式
|
||
|
||
```tsl
|
||
source := "hello tiny tiny tiny tiny tiny";
|
||
reg := "hello.*(tiny)";
|
||
ret := parseRegExpr(reg, source, "u", result, m_pos, mlen);
|
||
return result;
|
||
// 输出:array(("hello tiny", "tiny"))
|
||
```
|
||
|
||
## `multiByteToUnicode(s, cp)`
|
||
|
||
声明:function
|
||
|
||
把一个ANSI编码方式转换为Unicode编码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------- | ---------------------------------- |
|
||
| `s` | string | 字符串,ANSI字符串 |
|
||
| `cp` | integer | 整数,代码页。中文为936或者54936。 |
|
||
|
||
返回:string
|
||
|
||
## `unicodetomultibyte(s, cp)`
|
||
|
||
声明:function
|
||
|
||
把一个Unicode编码方式转换为ANSI编码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------- | ---------------------------------- |
|
||
| `s` | string | 字符串,Unicode字符串。 |
|
||
| `cp` | integer | 整数,代码页。中文为936或者54936。 |
|
||
|
||
返回:string
|
||
|
||
## `lcMapString(s, lcid, flag)`
|
||
|
||
声明:function
|
||
|
||
编码转化函数,参考WINDOWS API LCMapString。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------ |
|
||
| `s` | string | 字符串。 |
|
||
| `lcid` | integer | 标识ID。 |
|
||
| `flag` | integer | 转换的参数。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return lcMapString("亞洲", 0x0804, 0x2000000); // 繁体转简体字符集
|
||
// 输出: 亚洲
|
||
// 差异说明:基于 Windows API,Linux 不支持。
|
||
```
|
||
|
||
## `unicodeEsc2(s)`
|
||
|
||
声明:function
|
||
|
||
把一个字符串转换成为\uxxxx的Unicode编码串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------------------ |
|
||
| `s` | string | 字符串,Ansi字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return unicodeEsc('2011 tinysoft天软科技');
|
||
// 返回字符串:2011 tinysoft\u5929\u8F6F\u79D1\u6280
|
||
```
|
||
|
||
## `concat(s_n)`
|
||
|
||
声明:function
|
||
|
||
返回s1+s2+s3+…sn合并的字符串,支持unicode串(宽字节字符集)进行合并。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----- | ------ | ------ |
|
||
| `s_n` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
arr := concat("thank-", "you-", "very-", "much! ");
|
||
return arr; // 输出:thank-you-very-much!
|
||
```
|
||
|
||
范例02:Unicode字符串的合并
|
||
|
||
```tsl
|
||
s1 := multiByteToUnicodew('天软', 936);
|
||
s2 := inttostrw(2020);
|
||
return concat(s1, s2);
|
||
// 输出宽字节字符串:天软2020
|
||
```
|
||
|
||
## `rightStr(text, num_chars)`
|
||
|
||
声明:function
|
||
|
||
前N个字符;基于所指定的字符数返回文本字符串中的最后一个或后几个字符;
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------- | -------- |
|
||
| `text` | string | 字符串 |
|
||
| `num_chars` | integer | 字符个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return rightStr('abccccdddd', 2);
|
||
// 输出:’dd’
|
||
```
|
||
|
||
## `leftStr(text, num_chars)`
|
||
|
||
声明:function
|
||
|
||
返回字符串从开始向左数Num_Chars个字符组成的字符串,支持多字节语言,一个汉字当成一个字符。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------- | -------- |
|
||
| `text` | string | 字符串 |
|
||
| `num_chars` | integer | 字符个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return leftStr('abccccdddd', 2);
|
||
// 输出:’ab’
|
||
```
|
||
|
||
## `wrapText(max_col)`
|
||
|
||
声明:function
|
||
|
||
按照最大行长为MaxCol自动分行。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ------------------ |
|
||
| `max_col` | integer | 整型,每行最长字符 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
const_line := "Separate this sentence to two lines.";
|
||
return wrapText(const_line, 20);
|
||
{输出:
|
||
(自动换行时考虑字词的完整性)
|
||
Separate this
|
||
sentence to two
|
||
lines.
|
||
}
|
||
```
|
||
|
||
## `array2Str(value, aps)`
|
||
|
||
声明:function
|
||
|
||
将数组value转换成一个用aps作为分割符号的字符串,与str2Array函数相反。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | --------------- | ---------------------------------------------------------------------------- |
|
||
| `value` | array of string | 一维数组,需要组合成字符串数据的一维数组,可以是字符串数组,也可以是数字数组 |
|
||
| `aps` | string | 字符串,分割符,默认分割符为分号‘;’ |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
var arr := array("thank", "you", "very", "much! ");
|
||
a := array2Str(arr, "-");
|
||
return a;
|
||
// 输出:thank-you-very-much!
|
||
```
|
||
|
||
## `chr(value)`
|
||
|
||
声明:function
|
||
|
||
返回ascii码的值为value的字符
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ---- |
|
||
| `value` | integer | 整数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_value := chr(50);
|
||
return a_value;
|
||
// 输出:字符串'2'
|
||
```
|
||
|
||
## `wideChr(value)`
|
||
|
||
声明:function
|
||
|
||
返回unicode码的值为value的unicode字符
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ---- |
|
||
| `value` | integer | 整数 |
|
||
|
||
返回:widestring
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a_value := wideChr(25105);
|
||
return a_value;
|
||
// 输出:Unicode字符串L'我'
|
||
```
|
||
|
||
## `setFormatLocalCode(code)`
|
||
|
||
声明:function
|
||
|
||
设置Format等函数默认使用的地区区域码,每个区域都有默认的格式。-1为默认格式,0为当前系统所属地区码。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ---- |
|
||
| `code` | integer | 整型 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
setFormatLocalCode(0);
|
||
return getFormatLocalCode(); // 输出:0
|
||
```
|
||
|
||
## `pos(substr, s)`
|
||
|
||
声明:function
|
||
|
||
子串位置,返回字符串Substr在字符串S中的位置,即S从第几个字母开始跟Substr的字符匹配,如果没有找到,就返回0。当参数类型不为字符串的时候不返回异常
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------ | ---------------------------------- |
|
||
| `substr` | string | 字符串类型,需要查找的字符串,子串 |
|
||
| `s` | string | 字符串类型,源串 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
范例01:
|
||
|
||
```tsl
|
||
a := pos('a', 'thank you');
|
||
return a; // 输出:3
|
||
```
|
||
|
||
范例02:
|
||
|
||
```tsl
|
||
return pos('fg', 'adcfgvbhj');
|
||
// 输出:4
|
||
```
|
||
|
||
## `str(x, s)`
|
||
|
||
声明:function
|
||
|
||
将一个实数X转换成字符串,存到参数S中
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | -------------- |
|
||
| `x` | real | 实数 |
|
||
| `s` | string | 字符串,输出值 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
str(114, s);
|
||
return s; // 输出:1.14000000000000E+0002
|
||
```
|
||
|
||
## `intToHex(value, digits)`
|
||
|
||
声明:function
|
||
|
||
返回整数Value转换成16进制格式的字符串,Digits为最小的数字个数,不足补0
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------- | ------------------ |
|
||
| `value` | integer | 整数 |
|
||
| `digits` | integer | 整数,最小数字个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return intToHex(43, 1);
|
||
// 输出: 2B(二进制时候为:101011)
|
||
```
|
||
|
||
## `boolToStr2(b)`
|
||
|
||
声明:function
|
||
|
||
将布尔型转换成字符串类型并返回。如果B为真,函数返回'true',如果B为假,返回' False'。若想返回’-1’与’0’的结果可用BoolToStr实现。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ---- | ------ |
|
||
| `b` | bool | 布尔型 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return boolToStr2(2>1); // 返回’ True’
|
||
```
|
||
|
||
## `decodeSoundexInt(a_value)`
|
||
|
||
声明:function
|
||
|
||
是SoundexInt函数的反函数,将表示发音的整数转成发音的字符串(SoundEx Codes)。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ------------------------ |
|
||
| `a_value` | integer | 整数,表示发音特征的整数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
test_str := "Tinysoft SoundexInt:返回表示AText的发音的整数";
|
||
test_str := decodeSoundexInt(soundexInt(test_str, 4));
|
||
return test_str;
|
||
// T521
|
||
```
|
||
|
||
## `decodeSoundexWord(a_value)`
|
||
|
||
声明:function
|
||
|
||
是SoundexWord函数的反函数,将表示发音的整数转成发音的字符串(SoundEx Codes)。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| --------- | ------- | ------------------------ |
|
||
| `a_value` | integer | 整数,表示发音特征的整数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
test_str := "Tinysoft SoundexInt:返回表示AText的发音的整数";
|
||
test_str := decodeSoundexWord(soundexWord(soundEx(test_str, 4))); // 24206
|
||
return test_str;
|
||
// T000
|
||
```
|
||
|
||
## `ansiPos(_const, s)`
|
||
|
||
声明:function
|
||
|
||
判断子串在字符串源串中的位置,从1开始计起,第1个即找到子串,则返回1。如果没有找到对应的子串,则返回0。其中,汉字占一个字符。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------ | ------------ |
|
||
| `_const` | string | 字符串,子串 |
|
||
| `s` | string | 字符串,源串 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return ansiPos("tinysoft", "2011 tinysoft");
|
||
// 6
|
||
```
|
||
|
||
## `strw(x, s)`
|
||
|
||
声明:function
|
||
|
||
将一个实数X转换成科学记数法格式的宽字节字符串,存到参数S中
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ---------- | -------------- |
|
||
| `x` | real | 实数 |
|
||
| `s` | widestring | 字符串,输出值 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
v := strw(123.123, s);
|
||
return s;
|
||
// 返回宽字节字符串:1.23123000000000E+0002
|
||
```
|
||
|
||
## `intToHexw(value, digits)`
|
||
|
||
声明:function
|
||
|
||
返回整数Value转换成16进制格式的宽字节字符串,Digits为最小的数字个数,不足补0。IntToHexw返回的是宽字节字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ------- | ------------------ |
|
||
| `value` | integer | 整数 |
|
||
| `digits` | integer | 整数,最小数字个数 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return intToHexw(43, 5);
|
||
// 返回宽字符串字符串:0002B
|
||
```
|
||
|
||
## `ifwstring(value, n)`
|
||
|
||
声明:function
|
||
|
||
判断value是否是一个宽字节字符串类型(Unicode字符集)。与ifString的区别是,ifString判断是否是多字节字符类型。可通过可选参数N对数组中的行或元素进行判断。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | -------------------------------- |
|
||
| `value` | any | 任意类型数值。 |
|
||
| `n` | integer | 可选参数,整数。具体参考返回说明 |
|
||
|
||
返回:bool
|
||
|
||
### 示例
|
||
|
||
范例一:
|
||
|
||
```tsl
|
||
// 判断是否为宽字节字符串类型
|
||
r1 := ifwstring(1);
|
||
r2 := ifwstring("A");
|
||
r3 := ifwstring(L"C");
|
||
r4 := ifwstring(array(1, "A", L"C"));
|
||
return array(r1, r2, r3, r4);
|
||
// 输出:array(0,0,1,0)
|
||
```
|
||
|
||
范例二:
|
||
|
||
```tsl
|
||
// 对数组第一维度数据进行类型判断
|
||
t := array(L"C", 3.56, "A", (1, L"C", 3), nil);
|
||
return ifwstring(t, -1);
|
||
// 输出:array(1,0,0,0,0)
|
||
```
|
||
|
||
范例三:
|
||
|
||
```tsl
|
||
// 对数组中每一数据进行类型判断
|
||
t := array(L"C", 3.56, "A", (nan, 2.14, L"C"), nil);
|
||
return ifwstring(t, 1);
|
||
// 输出:array(1,0,0,(0,0,1),0)
|
||
```
|
||
|
||
## `boolToStrw2(b)`
|
||
|
||
声明:function
|
||
|
||
将布尔型转换成宽字节字符串类型并返回。与BoolToStr2的区别是,BoolToStr2返回的是多字节字符串,而BoolToStrw2返回的是宽字节字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ---- | ------ |
|
||
| `b` | bool | 布尔型 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return boolToStrw2(2>1);
|
||
// 返回宽字节字符串:True
|
||
```
|
||
|
||
## `boolToStrw(b)`
|
||
|
||
声明:function
|
||
|
||
将布尔型转换成宽字节字符串类型并返回。与BoolToStr的区别是,BoolToStr返回的是多字节字符串,而BoolToStrw返回的是宽字节字符串。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ---- | ------ |
|
||
| `b` | bool | 布尔型 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return boolToStrw(2>1);
|
||
// 返回宽字节字符串:-1
|
||
```
|
||
|
||
## `functionVer(_type, name)`
|
||
|
||
声明:function
|
||
|
||
返回函数版本号。函数版本号是一个函数保存在SERVER的一个版本标识,可以用来判断函数是否被修改过。可和SAVETABLE和LOADTABLE综合使用。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------- | ------------------ |
|
||
| `_type` | integer | 整数,函数类型。 |
|
||
| `name` | string | 字符串,函数名称。 |
|
||
|
||
返回:integer
|
||
|
||
## `strToBase64(s)`
|
||
|
||
声明:function
|
||
|
||
将字符串转换为BASE64编码并返回,该函数为本运行函数,使用时需要加rdo2
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ------ |
|
||
| `s` | string | 字符串 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return rdo2 strToBase64('a12'); // 返回字符串:YTEy
|
||
```
|
||
|
||
## `base64ToStr(s)`
|
||
|
||
声明:function
|
||
|
||
将BASE64编码转换为字符串并返回,该函数为本运行函数,使用时需要加rdo2
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ---------------------------- |
|
||
| `s` | string | 字符串,BASE64编码的字符串。 |
|
||
|
||
返回:string
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
return rdo2 base64ToStr('YTEy'); // 返回字符串:a12
|
||
```
|
||
|
||
## `encodeUriComponent(s)`
|
||
|
||
声明:function
|
||
|
||
将URI中的某些字符用十六进制的转义序列进行替换
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ----------------------------------- |
|
||
| `s` | string | 字符串,含有URI或其他要编码的字符串 |
|
||
|
||
返回:string
|
||
|
||
## `decodeUriComponent(s)`
|
||
|
||
声明:function
|
||
|
||
将URI中的十六进制转义序用它们表示的字符替换
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | ----------------------------------------------- |
|
||
| `s` | string | 字符串,由EncodeURIComponent(s)函数编码的字符串 |
|
||
|
||
返回:string
|
||
|
||
## `encodeUri(s)`
|
||
|
||
声明:function
|
||
|
||
将URI中的某些字符用十六进制的转义序列进行替换
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | --------------------------------- |
|
||
| `s` | string | 字符串含有 URI 或其他要编码的文本 |
|
||
|
||
返回:string
|
||
|
||
## `decodeUri(s)`
|
||
|
||
声明:function
|
||
|
||
将URI中的十六进制转义序用它们表示的字符替换
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ------ | --------------------------------------- |
|
||
| `s` | string | 字符串,由EncodeURI (s)函数编码的字符串 |
|
||
|
||
返回:string
|
||
|
||
## `getMsgDigest(s, mode)`
|
||
|
||
声明:function
|
||
|
||
计算字符串s的摘要,返回摘要的字符串
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------------------------------- |
|
||
| `s` | string | 计算摘要的字符串。 |
|
||
| `mode` | integer | 指定摘要算法,摘要函数支持的算法包括: |
|
||
|
||
返回:string
|