Files
playbook/skills/tsl-api-reference/references/codegen/builtin/base/string.md
T
csh e1f7ce052c feat(skills): add tsl api reference skill
Bundle the TSL API index and markdown references under the skill, route TSL docs to use it, and update the codegen index generator to maintain the bundled data.
2026-07-07 16:36:15 +08:00

90 KiB
Raw Blame History

Builtin - 基础 / 字符串

strCmp(s1, s2)

比较s1与s2的ascii码值的大小,若s1较大,则返回正数,若相等,则返回0,若s2较大,则返回负数。返回值的绝对值大小无实际意义。

参数 类型 说明
s1 string 字符串
s2 string 字符串

返回:integer

示例

a := strCmp("arr", "arry");
return a; //
// 输出:-1
// 差异说明
// 返回值的绝对值大小无实际意义,在不同操作系统中,其绝对值大小也表现不一。
// 比如,对比字符或ASCII码的比较,在Linux中,返回ASCII码相差的值,Windows中只返回-1,0,1等代表大小,但是符号是一致的。
如strcmp(#97, #100); // Windows返回-1Linux中返回-3。

format(formatstr, v1, v2, v3)

返回根据formatstr设定的格式将v1,v2,v3,…参数连成字符串返回。

参数 类型 说明
formatstr string 格式串,指明后面的参数的输出格式。
v1 any 各种类型,并对应formatstr中的各种类型
v2 any 可选参数,任意类型,指定的数值。
v3 any 可选参数,任意类型,指定的数值。

返回:string

示例

1、把两个数字格式化为字符串:Format('First %d, Second %d', n1, n2);
// 其中n1和n2是两个整数值,第一个占位符由第一个值替代,第二个占位符由第二个值替代,以此类推。
2、Format ('%-8d', n1);
// 该句把数字n1转换成有长度是8个字符的字符串,并通过填充空白使文本左对齐,左对齐用减号(-)

范例01:(D 和X的使用范例)

// 指定前2个数值转化为十进制数字字符串,第3个整数转化成十六进制字符串,3个数值必须是整数。
// 第2个转化%-5d:由于3只有1位,需要左对齐,则在右边添加4位空格
return format('%d,%-5d,%X', 4, 3, 12);
// 输出字符串:4,3  ,C

范例02:(E的使用范例)

// .1表示后面的小数位的精度。注意,v必须是一个浮点数,比如1234400.0,如果是1234400则被认为是整数,执行函数报错
return format("%.1E", 1234400.0);
// 输出字符串:1.2E+006

范例03:(F的使用范例)

return format("%.1f", 1234400.56789);
// 输出字符串: 1234400.6

范例04:(G的使用范例)

return format("%G", 1.2E+006);
// 输出字符串:1200000

范例05:(N的使用范例)

return format("%.1N", 1234400.56789);
// 输出字符串:1,234,400.6

范例06:(M的使用范例)

return format("%.1M", 1234400.56789);
// 输出字符串:¥1,234,400.6

范例七:(参数的索引)

return format('%2:d,%1:5d,%0:X', 14, 3, 12);
// 输出字符串:12,  3,E

setLength(s, new_length)

设置字符串或者Matrix或者二进制类型S的长度为NewLength

参数 类型 说明
s string|matrix|binary 字符串或者MATRIX或者二进制类型
new_length integer 整数,长度

返回:integer

示例

// 相当于截取了源串S的前NewLength个字符
s := 'thankyou';
setLength(s, 5);
return s;
// 输出字符串:thank

compareText(s1, s2)

字符串比较,如果S1大于S2,则返回正数,如果相等,返回0,否则返回负数

参数 类型 说明
s1 string 字符串,比较字符串1
s2 string 字符串,比较字符串2

返回:integer

示例

return compareText("SZ000002", "SZ000001"); // 输出:1
return compareText("SZ000001", "sz000001"); // 输出:0
return compareText("万科A", "万科A"); // 输出:-65248

copy(s, index, count)

字符串拷贝函数,将字符串S的第Index个字符开始,拷贝出Count个字符组成字符串返回,或者说取S的子字符串出来。如果Index大于字符串长度,则返回空字符串,如果拷贝的内容超过了字符串长度,则只返回从第Index个字符到S字符串结尾的部分

参数 类型 说明
s string 字符串类型,源串
index integer 整数,开始字符,字符串位置从1计起
count integer 整数,字符个数

返回:string

示例

a := copy('thank you', 3, 6);
return a; // 输出字符串:ank yo

upperCase(s)

将字符串S转换成大写并返回

参数 类型 说明
s string 字符串

返回:string

示例

return upperCase("sz000001");
// 输出:SZ000001

leftBStr(a_text, a_count)

返回Atext字符串从开始向左数ACount个字符组成的字符串。

参数 类型 说明
a_text string 字符串,源串
a_count integer 整数,截取字符串的个数

返回:string

示例

arr := leftBStr("i am a student", 4);
return arr; // 输出字符串:i am

rightBStr(a_text, a_count)

返回Atext字符串从结束向右数ACount个字符组成的字符串。

参数 类型 说明
a_text string 字符串,源串
a_count integer 整数,截取字符串的个数

返回:string

示例

arr := rightBStr("i am a student", 4);
return arr; // 输出:dent

midBStr(a_text, astart, a_count)

返回Atext字符串从Astart个字符的位置开始数出ACount个字符组成的字符串,天软字符串下标从1开始。

参数 类型 说明
a_text string 字符串,源串
astart integer 整数,开始位置,从1开始数起
a_count integer 整数,截取长度

返回:string

示例

arr := midBStr("i am a student", 6, 6);
return arr; // 输出: a stud

getFormatLocalCode()

获得当前Format等函数默认使用的地区区域码,-1为默认格式,0为当前系统所属地区码。

返回:integer

示例

setFormatLocalCode(0);
return getFormatLocalCode(); // 输出:0

compareStr(s1, s2)

字符串比较,如果S1大于S2,则返回正数,如果相等,返回0,否则返回负数

参数 类型 说明
s1 string 字符串,比较字符1
s2 string 字符串,比较字符2

返回:integer

示例

return compareStr("万科A", "万科A");
// 输出:-65248

trim(s)

去掉字符串首尾空格以及控制字符的字符串

参数 类型 说明
s string 字符串

返回:string

示例

return trim(" Hello! \r\n Tinysoft  ");
{输出字符串(把Hello前的空格以及Tinysoft后的空格删除,并把\r\n转义)
"Hello!
Tinysoft"
}

sameText(s1, s2)

返回字符串S1S2是否相等

参数 类型 说明
s1 string 字符串,比较字符串1
s2 string 字符串,比较字符串2

返回:bool

示例

return sameText("SZ000001", "sz000001"); // 输出:1
// 输出:1

appendStr(dest, s)

将字符串S加到Dest上,并返回到Dest参数中

参数 类型 说明
dest string 字符串,源串
s string 字符串,添加串

返回:void

示例

s := "申万";
appendStr(s, "采掘");
return s; // 输出:申万采掘

getChar(s, index)

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

参数 类型 说明
s string 字符串/二进制,源串
index integer 整数,取数位置

返回:char

示例

arr := getChar("i am a student", 9);
return arr; // 输出: 116

lowerCase(s)

将字符串S转换成小写并返回

参数 类型 说明
s string 字符串

返回:string

示例

return lowerCase("万科A");
// 输出: 万科a

val(s, v, code)

将一个字符串S转换成实数V,如果成功,则Code置0,否则Code表示转换不成功的字符的位置

参数 类型 说明
s string 字符串
v real 实数,输出值
code integer 整数,输出值

返回:any

示例

范例一:

val("1.1424E+0002", v, code);
return v; // 输出:114.24

范例二:

// 返回错误信息:在转换到第6位字符时不成功。
val("1.142aE+0002", v, code);
return array(v, code); // 输出:array(1.142,6)

trimRight(s)

去掉尾空格以及控制字符的字符串

参数 类型 说明
s string 字符串

返回:string

示例

return trimRight("Hello! \r\n Tinysoft  ");
{输出字符串
" Hello!
Tinysoft "
}

trimLeft(s)

去掉首空格以及控制字符的字符串

参数 类型 说明
s string 字符串

返回:string

示例

return trimLeft("Hello! \r\n Tinysoft  ");
{输出字符串
"Hello!
Tinysoft  "
}

strToIntDef(s, default)

将字符串转换为整数。如果转换失败,则返回Default值。

参数 类型 说明
s string 字符串。需转换的字符串
default integer 整数。转换失败时返回的默认值

返回:integer

示例

范例01

return strToIntDef("12", 1); // 输出: 12
return strToIntDef("test", 1); // 输出: 1

范例02:十六进制格式字符串的转换

return strToIntDef("0x12", 1); // 输出:18

formatFloat(format, value)

将实数Value根据参数Format设定格式转换成字符串返回

参数 类型 说明
format string 字符串,格式串
value real 实数

返回:string

示例

// 格式串
1234
-1234
0.5
0
// 无
-1234
0.5
0
0
1234
-1234
1
0
0.00
1234.00
-1234.00
0.50
0.00
#.##
1234
-1234
.5
#, ##0.00
1, 234.00
1, 234.00
0.50
0.00
#, ##0.00;(#, ##0.00)
1, 234.00
1, 234.00
0.50
0.00
#, ##0.00;;Zero
1, 234.00
-1, 234.00
0.5
Zero
0.000E+00
1.234E+03
-1.234E+03
5.000E-01
0.000E+00
#.###E-0
1.234E3
-1.234E3
5E-1
0E0
return formatFloat('0.000E+00', 23224);
// 输出字符串:"2.322E+04"
return formatFloat('##,###.00', 123);
// 输出字符串:"123.00"
return formatFloat('00,000.00', 123);
// 输出字符串:"00,123.00"

strToCurrDef(s, default)

将数字字符串S转换成实数返回,字符串中不允许有千分号。如果转换没有成功,则返回参数Default指定的默认值。小数位数与设置的系统参数相关,但是最大有效小数位为4位,超过四位小数的处理在不同的版本处理可能存在不一致的地方。

参数 类型 说明
s string 字符串
default currency 实数,默认值

返回:currency

示例

return strToCurrDef('1321.233', 3);
// 输出:1321.233

strToFloatDef(s, default)

将数字字符串S转换成实数返回,字符串中不允许有千分号。如果转换没有成功,则返回参数Default指定的默认值

参数 类型 说明
s string 字符串
default real 实数,默认值

返回:real

示例

return strToFloatDef('a', 2);
// 输出:2

tryStrToInt(s, value)

将字符串转换为32位整数。若转换成功,转换值通过Value输出。

参数 类型 说明
s string 字符串。需转换的字符串
value integer 变参。转换成功,为转换后的整数;否则,为NIL值。

返回:bool

示例

范例01:转换成功

ret := tryStrToInt("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12

范例02:转换失败

ret := tryStrToInt("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"

范例03:十六进制格式字符串的转换

ret := tryStrToInt("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18

floatToStr(value)

将实数转换成字符串类型。和FloatToStrne的区别:在处理浮点数据时,FloatToStr的结果会输出为1E15等格式

参数 类型 说明
value real 实数

返回:string

示例

return floatToStr(23.4);
// 输出字符串:"23.4"
return floatToStr(1E15);
// 大数量级数据,输出:"1E15"

tryStrToFloat(s, value)

将数字字符串S转换成实数存到参数Value中,字符串中不允许有千分号。如果转换成功返回真,否则返回假。

参数 类型 说明
s string 字符串,需要转换的数字字符串
value real 实数,输出值

返回:bool

示例

tryStrToFloat('321.23', s);
return s; // 输出:321.23

formatCurr(format, value)

将实数Value根据参数Format设定格式转换成字符串返回

参数 类型 说明
format string 字符串,格式串
value currency 实数

返回:string

示例

return formatCurr('0.000E+00', 232.24);
// 输出:2.322E+02

tryStrToCurr(s, value)

将数字字符串S转换成实数存到参数Value中,如果转换成功返回真,否则返回假。最大有效小数位为4位,超过四位小数的处理在不同的版本处理可能存在不一致的地方。

参数 类型 说明
s string 字符串
value currency 实数

返回:bool

示例

tryStrToCurr('1321.2333', s);
return s;
// 输出:1321.2333

boolToStr(s)

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

参数 类型 说明
s string 数字字符串Default:布尔型,一般为假

返回:string

示例

return boolToStr(1>2, 0);
// 输出:0

currToStr(value)

将Currency型的实数转换成字符串类型返回

参数 类型 说明
value currency 实数

返回:string

示例

return currToStr(23.24);
// 输出字符串:"23.24"

tryStrToBool(s, value)

如果S为'0',则参数Value置为假,如果S是非0的数字串,则参数Value置为真。如果转换成功,函数返回真,否则返回假

参数 类型 说明
s string 数字字符串
value bool 布尔型,输出值

返回:bool

示例

tryStrToBool("12", s);
return s; // 输出: 1

isValidIdent(ident)

返回字符串Ident是否可以作为一个合法的标识符号。

参数 类型 说明
ident string 字符串

返回:bool

示例

return isValidIdent('a0ffh2');
// 输出: 1

strToBoolDef(s, default)

如果S为'0',返回假,如果是非0的数字串,则返回真,如果转换不成功,则返回Default指定的值

参数 类型 说明
s string 数字字符串
default bool 整数,默认返回值

返回:bool

示例

return strToBoolDef("12", 3);
// 输出: 1

intToStr(value)

整数Value转换成字符串

参数 类型 说明
value integer 整数

返回:string

示例

return intToStr(43);
// 输出:"43"

sysEncodecryptStr(s, t)

对字符串进行加密。

参数 类型 说明
s string 字符串,需要被加密的源串
t integer 整数,选择加密类型

返回:string

示例

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)

将字符串转换为64位整数。如果转换失败,则返回Default值。

参数 类型 说明
s string 字符串。需转换的字符串
default int64 整数。转换失败时返回的默认值

返回:int64

示例

范例01

return strToInt64Def("12", 1); // 输出: 12L
return strToInt64Def("test", 1); // 输出: 1L

范例02:十六进制格式字符串的转换

return strToInt64Def("0x12", 1); // 输出:18L

tryStrToInt64(s, value)

将字符串转换为64位整数。若转换成功,转换值通过Value输出。

参数 类型 说明
s string 字符串。需转换的字符串
value int64|nil 变参。转换成功,为转换后的整数;否则,为NIL值。

返回:bool

示例

范例01:转换成功

ret := tryStrToInt64("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12L

范例02:转换失败

ret := tryStrToInt64("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"

范例03:十六进制格式字符串的转换

ret := tryStrToInt64("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18L

strToInt32Def(s, default)

将字符串转换为32位整数。如果转换失败,则返回Default值。

参数 类型 说明
s string 字符串。需转换的字符串
default integer 整数。转换失败时返回的默认值

返回:integer

示例

范例01

return strToInt32Def("12", 1); // 输出: 12
return strToInt32Def("test", 1); // 输出: 1

范例02:十六进制格式字符串的转换

return strToInt32Def("0x12", 1); // 输出:18

tryStrToInt32(s, value)

将字符串转换为32位整数。若转换成功,转换值通过Value输出。

参数 类型 说明
s string 字符串。需转换的字符串
value integer|nil 变参。转换成功,为转换后的整数;否则,为NIL值。

返回:bool

示例

范例01:转换成功

ret := tryStrToInt32("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12

范例02:转换失败

ret := tryStrToInt32("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"

范例03:十六进制格式字符串的转换

ret := tryStrToInt32("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18

ansiContainsText(a_text, a_sub_text)

判别一个字符串Atext是否包含另一个字符串ASubText。如果包含,就返回真,否则返回假。

参数 类型 说明
a_text string 字符串类型,源串
a_sub_text string 字符串类型,子串

返回:bool

示例

text := 'abcdefg';
return ansiContainsText(text, 'Abcd');
// 输出:1,包含

ansiStartsText(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

text := 'abcdefg';
return ansiStartsText('Abc', text);
// 输出:1

ansiEndsText(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

text := 'abcdefg';
return ansiEndsText('Efg', text);
// 输出:1

ansiContainsStr(a_text, a_sub_text)

判定指定的字符串AsubTexts是否是Atext字符串的子串。返回布尔型真假值,字符串AsubTexts是Atext字符串的子串,就返回真,否则返回假

参数 类型 说明
a_text string 字符串类型,源串
a_sub_text string 字符串型,子串

返回:bool

示例

a_text := 'abcdefg';
return ansiContainsStr(a_text, 'Bcd');
// 输出:1

ansiStartsStr(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。与AnsiStartsText函数不同,字符串的匹配是大小写敏感的

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

atext := 'abcdefg';
return ansiStartsStr('abcd', atext);
// 输出:1

ansiEndsStr(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。与AnsiEndsText函数不同,字符串的匹配是大小写敏感的

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

text := 'abcdefg';
return ansiEndsStr('efg', text);
// 输出:1

stuffString(a_text, a_start, alength, a_sub_text)

字符串重组函数。将指定的字符串Atext的第AStart个字符开始以后的ALength个字符用AsubText字符串替换掉,得到一个新的字符串返回。

参数 类型 说明
a_text string 字符串类型,源串。
a_start integer 整数,表明从第几个字符串开始被替换,1代表第一个字符,2代表第2个,以次类推
alength integer 非负整数,表明替换几个连续的字符,如果为0,则直接插入AsubText字符串。
a_sub_text string 字符串类型,替换原的内容

返回:string

示例

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)

字符串的部分替换。将一个字符串Atext的其中的AFromText部分替换为AToText部分。本函数支持多语言。

参数 类型 说明
a_text string 字符串类型,源串
a_from_text string 字符串类型,被替换内容
a_to_text string 字符串类型,替换内容

返回:string

示例

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)

字符串的部分替换。将一个字符串Atext的其中的AFromText部分替换为AToText部分。与AnsiEndsText函数不同,字符串的匹配是大小写敏感的。本函数支持多语言。

参数 类型 说明
a_text string 字符串类型,源串
a_from_text string 字符串类型,被替换内容
a_to_text string 字符串类型,替换内容

返回:string

示例

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)

字符串的部分替换。将一个字符串Atext中第一次遍历时存在的AFromText全部替换为AToText部分。本函数不支持多语言。

参数 类型 说明
a_text string 字符串类型,源串
a_from_text string 字符串类型,被替换内容
a_to_text string 字符串类型,替换内容

返回:string

示例

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)

字符串的部分替换。将一个字符串Atext中第一次遍历时存在的AFromText全部替换为AToText部分。与AnsiEndsText函数不同,字符串的匹配是大小写敏感的。本函数不支持多语言。

参数 类型 说明
a_text string 字符串类型,源串
a_from_text string 字符串类型,被替换内容
a_to_text string 字符串类型,替换内容

返回:string

示例

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)

返回字符串S的反序

参数 类型 说明
s string 字符串类型

返回:string

示例

return reverseString('abcde1234');
// 返回字符串:4321edcba
ho toStn(r); // 输出:"Tinysoft\n Statistical \nanalysis Language"

dupeString(a_text, a_count)

返回将指定的字符串AText重复ACount次后的字符串

参数 类型 说明
a_text string 字符串类型,源串
a_count integer 整数,重复的次数

返回:string

示例

s := dupeString('Ha', 5);
return s;
// 输出:表示将S的值变为'HaHaHaHaHa'

startsText(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。可以处理非MBCS的原始字符串。

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

text := 'abcdefg';
return startsText('Abc', text);
// 输出:1
// 差异说明
// 对于空字符串,windows系统中判定为1,Linux中判定为0。其它表现无差别。
如:return StartsText("", "A"); // windows中返回1,而Linux中返回0。

endsText(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。可以处理非MBCS的原始字符串。

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

text := 'abcdefg';
return endsText('Efg', text);
// 输出:1
// 差异说明
// 对于空字符串,windows系统中判定为1,Linux中判定为0。其它表现无差别。
如:return EndsText("", "A"); // windows中返回1,而Linux中返回0。

containsStr(a_text, a_sub_text)

判定指定的字符串AsubTexts是否是Atext字符串的子串。返回布尔型真假值,字符串AsubTexts是Atext字符串的子串,就返回真,否则返回假。可以处理非MBCS的原始字符串。

参数 类型 说明
a_text string 字符串类型,源串
a_sub_text string 字符串型,子串

返回:bool

示例

a := '2020Tinysoft 天软';
b := 'tinysoft';
c := 'Tinysoft';
return array(containsStr(a, b), containsStr(a, c));
// 输出:array(0,1)

startsStr(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的开头。如果ASubText 是Atext的开头,就返回真,否则返回假。可以处理非MBCS的原始字符串。与StartsText函数不同,字符串的匹配是大小写敏感的。

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

atext := 'abcdefg';
return startsStr('abcd', atext);
// 输出:1

endsStr(a_sub_text, a_text)

判别一个字符串ASubText是否是另一个字符串AText的结尾。如果ASubText 是Atext的结尾,就返回真,否则返回假。可以处理非MBCS的原始字符串。与EndsText函数不同,字符串的匹配是大小写敏感的。

参数 类型 说明
a_sub_text string 字符串类型,子串
a_text string 字符串类型,源串

返回:bool

示例

text := 'abcdefg';
return endsStr('efg', text);
// 输出:1

stuffbString(a_text, a_star, alength, a_sub_text)

字符串重组函数。将指定的字符串Atext的第AStart个字符开始以后的ALength个字符用AsubText字符串替换掉,得到一个新的字符串返回。可以处理非MBCS的原始字符串。一个汉字两个字节。

参数 类型 说明
a_text string 字符串类型,源串。
a_star integer 整数,表明从第几个字节开始被替换,1代表第一个字节,2代表第2个,以次类推
alength integer 非负整数,表明替换几个连续的字节,如果为0,则直接插入AsubText字符串
a_sub_text string 字符串类型,替换原的内容

返回:string

示例

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

getPyStringList()

汉字拼音首字母对照表

返回:tslobj

示例

sl := getPyStringList();
return sl.values("明");
// 返回:M

soundEx(a_text, alength)

返回一个字符串,这个字符串是用来表明AText的发音的。通过转化为发音特征的字符串(SoundEx Codes),可以比较两个字符串是否发音相同或近似。Alength是声明最大的发音长度,一般定义为4

参数 类型 说明
a_text string 字符串数组,发音源串
alength integer 整数,且大于1

返回:string

示例

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)

返回表示AText的发音的整数。整数是根据通过发音特征的字符串(SoundEx Codes)唯一转化来的,和字符串长度无关。

参数 类型 说明
a_text string 字符串数组,源串
alength integer 整数,在1和8之间,一般定义为4

返回:integer

示例

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)

比较两个字符串的发音是否足够相似。根据AText和Aother转成发音码以后比较前面四个发音码。如果两个发音码相同,返回真,否则返回假

参数 类型 说明
a_text string 字符串,比较发音字符串1
a_other string 字符串,比较发音字符串1

返回:bool

示例

return soundexProc("sun", "sum");
// 输出:1
return soundexProc("sun", "fun");
// 输出:0
return soundexProc("transaction", "transact");
// 输出:1

ansiResemblesText(a_text, a_other)

判别一个字符串Atext是否相似于另一个字符串。如果足够相似,就返回真,否则返回假。

参数 类型 说明
a_text string 字符串类型
a_other string 字符串类型

返回:bool

示例

return ansiResemblesText("sun", "sum");
// 输出:1
return ansiResemblesText("sun", "fun");
// 输出:0
return ansiResemblesText("transaction", "transact");
// 输出:1

getLikeFlag()

返回Like操作符号的正则表达式的默认控制状态。即获得SetLikeFlag设置的状态,默认为1。

返回:integer

示例

s := "ParseRegExpr 2011 \r\n ShenZhenTinysoft (TSL)";
reg := "(\\d+).*(tinysoft)";
setLikeFlag(0b0001+0x0010); // 大小写无关+使 '.' 特殊字符匹配任意字符
r := s like reg;
return getLikeFlag(); // 获取当前正则控制符状态
// 返回17

setLikeFlag(flag)

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

参数 类型 说明
flag integer 正则表达式控制模式。

控制模式取值:

取值 说明
0b0001 大小写无关
0b0010 多行开关打开
0b0100 不理会^标志
0b1000 不理会$标志
0x0010 REG_DOTALL;使 '.' 特殊字符匹配任意字符,包括换行符;如果没有这个标识,'.' 将匹配 除去 换行符以外的任意字符。
0x0100 REG_NOTEMPTY;禁止匹配空字符串
0x0200 REG_UNGREEDY;非贪婪模式

返回:integer

示例

s := "ParseRegExpr 2011 \r\n ShenZhenTinysoft (TSL)";
reg := "(\\d+).*(tinysoft)";
setLikeFlag(0b0001+0x0010); // 大小写无关+使 '.' 特殊字符匹配任意字符
return s like reg;
// 返回:1

nextCharIndex(s, index)

返回指定字符的开始字节的下一个字符的字节开始位置。

参数 类型 说明
s string 字符串,源串
index integer 整数,字符的开始字节位置

返回:integer

示例

// ‘软’的开始字节是3,下一个字符是‘T’,‘T’的开始字节位置是5
s := "天软Tinysoft Statistical analysis Language";
return nextCharIndex(s, 3);
// 返回:5

ansiToUtf8(s)

转换为UTF8编码的字符串。

参数 类型 说明
s string 字符串,Ansi字符串

返回:string

示例

return  ansiToUtf8('2011 tinysoft天软科技');
// 返回字符串:2011 tinysoft澶╄蒋绉戞妧

utf8ToAnsi(s)

UTF8串转为Ansi串。

参数 类型 说明
s string 字符串,UTF8编码字符串在Ansi编码中的显示字符

返回string

示例

return  utf8ToAnsi ('2011 tinysoft澶╄蒋绉戞妧');
// 返回字符串:2011 tinysoft天软科技

charToByteIndex(s, index)

字符索引到字节索引的转换。

参数 类型 说明
s string 字符串,源串
index integer 整数,字符位置

返回:integer

示例

// 返回第30字符对应的字节位置
// 其中‘天软’占有4个字节,其余每个字符占1个字节
s := "天软Tinysoft Statistical analysis Language";
return charToByteIndex(s, 30);
// 返回:32

byteToCharLen(s, max_len)

判断字符流S中最多MaxLen的字节中所包含的字符数量。指定最多字节空间后,S字符串的字符个数。

参数 类型 说明
s string 字符串,源串
max_len integer 整数,最大字节数

返回:integer

示例

// 指定最多字节为30后,查找S中30个字节中有多少个字符,
// 其中‘天软’占有4个字节,所以30个字节中,S有28个字符。
s := "天软Tinysoft Statistical analysis Language";
b1 := byteToCharLen(s, 30);
return b1;
// 返回:28

charToByteLen(s, max_len)

判断字符串S中最多MaxLen的字符中占有的字节数。

参数 类型 说明
s string 字符串,源串
max_len integer 整数,字符个数

返回:integer

示例

// 在S字符串中取30个字符,统计其所占的字节数。
// 其中‘天软’占有4个字节,其余每个字符占1个字节,由此,30个字符占有32个字节
s := "天软Tinysoft Statistical analysis Language";
b1 := charToByteLen(s, 30);
return b1;
// 返回:32

charLength(s, index)

指定位置的字符所包含的字节数。

参数 类型 说明
s string 字符串,源串
index integer 整数,字符位置

返回:integer

示例

// 第2个字符‘软’的字节数
s := "天软Tinysoft Statistical analysis Language";
return charLength(s, 2);
// 返回:2

byteToCharIndex(s, index)

字节索引到字符索引的转换。

参数 类型 说明
s string 字符串,源串
index integer 整数,字节位置

返回:integer

示例

// 返回第30字节位置时,是第几个字符位置
// 其中‘天软’占有4个字节,其余每个字符占1个字节
s := "天软Tinysoft Statistical analysis Language";
return byteToCharIndex(s, 30);
// 返回:28

byteType(s, index)

返回字符串的指定位置的字符的类型,类型为:0 单字节字符,1 多字节的引导字节, 2 多字节的结尾字节。

参数 类型 说明
s string 字符串,
index integer 整数,指定字符的位置

返回:tmbcsbytetype

示例

// 单字节字符‘t
return byteType("2011 tinysoft", 6);
// 0
// 多字节字符‘天’
return byteType("2011 tinysoft天软", 14);
// 1
// 多字节字符‘软’,且为最后一个字符
return byteType("2011 tinysoft天软", 15);
// 2
// 单字节字符‘1’,最后一个字符
return byteType("2011 ", 4);
// 0

unicodeEsc(s)

把一个字符串转换成为%uxxxx的Unicode编码串。

参数 类型 说明
s string 字符串,Ansi字符串

返回:string

示例

return echo unicodeEsc('2011 tinysoft天软科技');
// 返回字符串:2011%20tinysoft%u5929%u8F6F%u79D1%u6280

floattoStrw(value)

将实数转换成宽字节字符串类型。和FloatToStrneW的区别:在处理大数量级数据(如1E15、10^15等)时,FloatToStrW的结果会输出为1E15等格式。

参数 类型 说明
value real 实数

返回:string

示例

return floattoStrw(1234.1234);
// 输出:L"1234.1234"
return floattoStrw(1E15);
// 大数量级数据,输出:L"1E15"

unUnicodeEsCw(s)

把一个%uxxxx编码方式的Unicode编码串解码,解码后是一个宽字节的字符串。

参数 类型 说明
s string 字符串,Unicode编码字符串在Ansi编码中的显示字符

返回:string

示例

return unUnicodeEsCw('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
//  2011 tinysoft天软科技’

currtoStrw(value)

将Currency型的实数转换成宽字节字符串类型返回

参数 类型 说明
value currency 实数

返回:string

示例

return currtoStrw(23.24);
// 输出字符串:"23.24"

inttostrw(value)

整数Value转换成宽字节字符串,与IntToStr的区别是,intTostrw返回的是宽字节字符串。

参数 类型 说明
value integer 整数

返回:string

示例

s := inttostrw(2);
return array(ifString(s), ifwstring(s));
// 返回:array(0,1) 说明返回结果串s为宽字节串,而非多字节字符串。

multiByteToUnicodew(s, cp)

把一个多字节字符串转换为Unicode编码的宽字节字符串。

参数 类型 说明
s string 字符串,多字节字符串
cp integer 整数,代码页。中文为936或者54936。

返回:string

示例

return multiByteToUnicodew('2020 Tinysoft 天软科技', 936);
// 返回宽字节字符串:2020 Tinysoft 天软科技 即L 2020 Tinysoft 天软科技’

utf8ToUnicode(s)

UTF8串转为Unicode串。Unicode串为宽字节字符串。

参数 类型 说明
s string 字符串,UTF8编码字符串在Unicode编码中的显示字符

返回:string

示例

return  utf8ToUnicode ('2011 tinysoft澶╄蒋绉戞妧');
// 返回双字节字符串:2011 tinysoft天软科技

exportjsonstring(data, n)

将TSL结构数据转换为json串。对于非ASCII编码的文字转换为转义字符。

参数 类型 说明
data 天软数据,任意数据类型。
n integer 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数

返回:string

示例

范例01:将天软含中文的字符串转化为json串

s := stockName('SZ000002'); // 万 科A
return exportJsonString(s);
// 返回字符串:"\u4E07 \u79D1\uFF21"

范例02:将数组转化为json串

s := array("A": 123, "B": "Tinysof 2026");
return exportJsonString(s);
// 返回字符串:{\"A\":123,\"B\":\"Tinysof 2026\"}

范例03:将数组转化为json串,并保留2位小数

s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
return exportJsonString(s, 2);
// 返回字符串:[[1.32,2.51],["Tinysoft\u5929\u8F6F","\u5929\u8F6F\u79D1\u6280"]]

unUnicodeEsc(s)

把一个%uxxxx编码方式的Unicode编码串解码。

参数 类型 说明
s string 字符串,Unicode编码字符串在Ansi编码中的显示字符

返回:string

示例

ReturnunUnicodeESC('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
//  2011 tinysoft天软科技'

exportJsonStringUtf8(data, n)

将天软数组转换为UTF8编码的Json串,解决与第三方交互时的转码问题。

参数 类型 说明
data 天软数据,任意数据类型。
n integer 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数

返回:string

示例

范例01

a := select ['StockID'], ['StockName'], dateToStr(['date']) as 'date', ['close']
from markettable datekey 20200901T
to 20200902T of 'SZ000002' end;
return exportJsonStringUtf8(a);
// 返回字符串
[{"StockID": "SZ000002", "StockName": "涓 绉戯肌", "date": "2020-09-01", "close": 27.22}, {"StockID": "SZ000002", "StockName": "涓 绉戯肌", "date": "2020-09-02", "close": 27.52}]

范例02:与python交互中的应用

pythonCode
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import TSLPy3
s="""
a := select ['StockID'], ['StockName'], dateToStr(['date']) as 'date', ['close']
from markettable datekey 20200901T
to 20200902T of 'SZ000002' end;
return exportJsonStringUtf8(a);
"""
data = tsl_py3.remoteExecute(s, {})
print(data[1].decode('utf8'))
// python中返回:
[{"StockID": "SZ000002", "StockName": "万 科A", "date": "2020-09-01", "close": 27.22}, {"StockID": "SZ000002", "StockName": "万 科A", "date": "2020-09-02", "close": 27.52}]

范例03:将数组转化为json串,并保留2位小数

s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
return exportJsonStringUtf8(s, 2);
// 返回字符串:"[[1.32,2.51],[\"Tinysoft澶╄蒋\",\"澶╄蒋绉戞妧\"]]"

exportJsonStringMbcs(data, n)

将TSL结构数据转换为json串。和ExportJSONString不同的是,该函数不会对中文进行转码处理,保留中文原码。

参数 类型 说明
data 天软数据,任意数据类型。
n integer 可选参数,要保留的小数位数。为0时保留1位小数,大于16或小于0时保留全部小数位数

返回:string

示例

范例01:将天软含中文的字符串转化为json串

s := stockName('SZ000002'); // 万 科A
return exportJsonStringMbcs(s);
// 返回字符串:"\"万 科A\""

范例02:将数组转化为json串

s := array((1, 'a'), ('Tinysoft天软', '天软科技'));
return exportJsonStringMbcs(s);
// 返回字符串:"[[1,\"a\"],[\"Tinysoft天软\",\"天软科技\"]]"

范例03:将数组转化为json串,并保留2位小数

s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
return exportJsonStringMbcs(s, 2);
// 返回字符串:"[[1.32,2.51],[\"Tinysoft天软\",\"天软科技\"]]"

lengthW(atext)

返回字符串的长度,支持多字节语言,一个汉字当成一个字符。

参数 类型 说明
atext string 字符串,需计算长度的字符串

返回:integer

示例

test_str := "Tinysoft lengthW:汉字当成一个字符";
return lengthW(test_str);
// 输出:25(包括空格和:

midStr(a_text, astart, a_count)

返回Atext字符串从Astart个字符的位置开始数出ACount个字符组成的字符串。天软字符串下标从1开始。

参数 类型 说明
a_text string 字符串数组,源串
astart integer 整数,开始位置,起始位置从1开始
a_count integer 整数,截取的字符串个数

返回:string

示例

test_str := "Tinysoft midStr:支持多字节语言,汉字当成一个字符";
return midStr(test_str, 10, 30);
// 输出字符串:“midStr:支持多字节语言,汉字当成一个字符”

changeFileExt(file_name, extension)

更改文件的扩展名。该函数并不实际更名指定的文件,其仅仅只是创建一个新的文件名字符串。此函数支持多字节字符集。

参数 类型 说明
file_name string 文件名。
extension string 新的扩展名,需包含’.’。

返回:string

示例

// 实际D盘的test.tsl没有改变
return changeFileExt("D:\\test.tsl", ".txt");
// D:\test.txt

extractFilePath(file_name)

返回文件名的驱动器以及目录部分,包含\。

参数 类型 说明
file_name string 字符串,文件路径及文件名

返回:string

示例

return extractFilePath("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// D:\Tinysoft\tslweb\web\

extractFileDir(file_name)

返回文件名的驱动器以及目录部分,即文件所在的目录,若非驱动根目录则不包含\。

参数 类型 说明
file_name string 字符串,文件路径及文件名

返回:string

示例

return extractFileDir("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// D:\Tinysoft\tslweb\web
// 差异说明
// 对于路径的处理,在不同系统中存在差异。如Linux中就没有驱动的概念,因此,在处理带驱动的路径时:
// 如对于根目录的处理extractfiledir("C:\\abc.txt")Windows中返回”C: \”而Linux中返回”C: ”

extractFileDrive(file_name)

返回文件名的驱动器部分。

参数 类型 说明
file_name string 字符串,文件路径及文件名

返回:string

示例

return extractFileDrive("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:D:

extractFileName(file_name)

返回文件名的去掉路径后的纯文件名部分。

参数 类型 说明
file_name string 字符串,文件路径及文件名

返回:string

示例

return extractFileName("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:test.tsl

extractFileExt(file_name)

返回文件的扩展名部分,其中包括”.”部分。

参数 类型 说明
file_name string 字符串,文件路径及文件名

返回:string

示例

return extractFileExt("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:.tsl

extractRelativePath(base_name, dest_name)

返回DestName文件相对于BaseName的相对路径名。

参数 类型 说明
base_name string 字符串,文件路径及文件名1
dest_name string 字符串,文件路径及文件名2

返回:string

示例

return extractRelativePath("D:\\test.tsl", "D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:Tinysoft\tslweb\web\test.tsl
// 差异说明
// 由于Linux系统中无盘符概念,所以不支持该功能。

isPathDelimiter(s, index)

判断字符串S的Index位置是否是一个’\’符号。

参数 类型 说明
s string 字符串,文件路径及文件名
index integer 整数,字符串位置

返回:bool

示例

return isPathDelimiter("D:\\Tinysoft\\tslweb\\web\\test.tsl", 3);
// 输出:1

isDelimiter(delimiters, s, index)

判断字符串S的Index位置是否包含在Delimiters字符串中。

参数 类型 说明
delimiters string 字符串,源串
s string 字符串,查找字符所在串
index integer 整数,指定的字符位置

返回:bool

示例

return isDelimiter("tinysoft", "2011 tinysoft", 6);
// 输出:1

includeTrailingPathDelimiter(s)

返回加上了’\’结尾的路径。

参数 类型 说明
s string 字符串,文件路径及文件名

返回:string

示例

return includeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web");
// 输出: D:\Tinysoft\tslweb\web\
// 差异说明
// 与路径中存在的路径分割符保持一致,当路径中不存在分割符时,则Windows中默认增加"\",在Linux中,则默认结路径路径加上”/”结尾。
如在Linux中:return IncludeTrailingPathDelimiter("/Tinysoft");
// 则返回字符串:/Tinysoft/

includeTrailingBackslash(s)

返回加上了’\’结尾的路径。

参数 类型 说明
s string 字符串,文件路径及文件名

返回:string

示例

return includeTrailingBackslash ("D:\\Tinysoft\\tslweb\\web");
// 输出: D:\Tinysoft\tslweb\web\
// 差异说明
// 与路径中存在的路径分割符保持一致,当路径中不存在分割符时,则Windows中默认增加"\",在Linux中,则默认结路径路径加上”/”结尾。
如在Linux中:return IncludeTrailingBackslash ("/Tinysoft");
// 则返回字符串:/Tinysoft/

excludeTrailingPathDelimiter(s)

去掉路径的’\’结尾。

参数 类型 说明
s string 字符串,文件路径及文件名

返回:string

示例

return excludeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web\\");
// 输出: D:\Tinysoft\tslweb\web

excludeTrailingBackslash(s)

去掉路径的’\’结尾。

参数 类型 说明
s string 字符串,文件路径及文件名

返回:string

示例

return excludeTrailingBackslash("D:\\Tinysoft\\tslweb\\web\\");
// 输出: D:\Tinysoft\tslweb\web

lastDelimiter(delimiters, s)

最后的分隔符在字符串S中的位置。

参数 类型 说明
delimiters string 字符串,分隔符
s string 字符串,文件路径

返回:integer

示例

return lastDelimiter('\\', "D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:23

ansiCompareFileName(s1, s2)

比较两个文件名,返回>0当S1>S2=0当S1=S2,<0当S1<S2

参数 类型 说明
s1 string 字符串,比较的文件名1
s2 string 字符串,比较的文件名2

返回:integer

示例

return ansiCompareFileName('index.tsl', "test.tsl");
// 输出:-11
// 差异说明
// 返回值的绝对值大小无实际意义,在不同操作系统中,其结果也表现不一。
// 在Linux中,由于文件名会区分大小写,而Windows中文件名不区分大小写,所以对比结果会有差异。
// 如:
// 在Windows中:
return ansiCompareFileName("D:\\test\\file1.txt", "D:\\Test\\File1.txt");
// 结果为0,因为不区分大小写,两文件名一致。
// 在Linux中:
return ansiCompareFileName("/tinysoft/file1.txt", "/Tinysoft/File1.txt");
// 结果为32,因为区分大小写,两文件名不相等。

sameFileName(s1, s2)

比较两个文件名是否相同,如果同名返回true,否则返回false。

参数 类型 说明
s1 string 字符串,比较的文件名1
s2 string 字符串,比较的文件名2

返回:bool

示例

ReturnSameFileName('index.tsl', "test.tsl");
// 输出:0

ansiLowerCaseFileName(s)

返回小写的文件名。

参数 类型 说明
s string 字符串,文件名

返回:string

示例

return ansiLowerCaseFileName("TEST.tsl");
// 输出:test.tsl

ansiUpperCaseFileName(s)

返回大写的文件名。

参数 类型 说明
s string 字符串,文件名

返回:string

示例

return ansiUpperCaseFileName("test.tsl");
// 输出:TEST.TSL

ansiFormat(formatstr, v1)

返回根据formatstr设定的格式将v1,v2,v3…参数连成字符串返回。

参数 类型 说明
formatstr string 格式串,指明后面的参数的输出格式。
v1 any 各种类型,并对应formatstr中的各种类型

返回:string

tostring(v)

将数值转成字符串类型

参数 类型 说明
v number 数值

返回:string

soundexSimilar(a_text, a_other, a_length)

判断两个字符串Atext和AOther是否发音相似

参数 类型 说明
a_text string 字符串,发音比较字符串1
a_other string 字符串,发音比较字符串2
a_length integer 判断长度,一般为4,备用参数,暂时无效。

返回:bool

示例

return soundexSimilar("sun", "sum");
// 输出:1
return soundexSimilar("sun", "fun");
// 输出:0
return soundexSimilar("return", "result");
// 输出:0

soundexCompare(a_text, a_other, a_length)

比较两个字符串的发音。根据AText和Aother转成发音码以后用AnsiCompareStr函数比较两个发音码。

参数 类型 说明
a_text string 字符串,发音比较字符串1
a_other string 字符串,发音比较字符串2
a_length integer 判断长度,一般为4,该参数备用,暂时无效

返回:integer

示例

return soundexCompare("sun", "sum");
// 输出:0
return soundexCompare("sun", "fun");
// 输出:1
return soundexCompare("result", "return");
// 输出:-1

parseRegExpr(reg_expr, parse_text, parse_ctrls, matched, matched_pos, matched_len)

正则表达式匹配。如果匹配成功,返回1,并将匹配的串以及子匹配组(所有匹配)返回在Matched数组,将匹配的串以及子匹配的位置以及匹配的长度存放在MatchedPos,MatchedLen数组。

参数 类型 说明
reg_expr string
parse_text string
parse_ctrls string
matched array of string
matched_pos array of integer
matched_len array of integer

返回:bool

示例

范例01:匹配数字、指定字符串

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:匹配数字、字符串、带括号的字符串

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串-匹配汉字

source := l"hello 你好!123"; // unicode串
reg := l"[\u4E00-\u9FA5]+"; // 匹配汉字的正则表达式->也是unicode串
ret := parseRegExpr(reg, source, "", result, m_pos, mlen);
return result;
// 输出:array((L"你好"))

范例04:通过控制符"u"设置为非贪婪模式

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)

把一个ANSI编码方式转换为Unicode编码。

参数 类型 说明
s string 字符串,ANSI字符串
cp integer 整数,代码页。中文为936或者54936。

返回:string

unicodetomultibyte(s, cp)

把一个Unicode编码方式转换为ANSI编码。

参数 类型 说明
s string 字符串,Unicode字符串。
cp integer 整数,代码页。中文为936或者54936。

返回:string

lcMapString(s, lcid, flag)

编码转化函数,参考WINDOWS API LCMapString。

参数 类型 说明
s string 字符串。
lcid integer 标识ID。
flag integer 转换的参数。

返回:string

示例

lcMapString(s, 0x0804, 0x2000000); // 可以把繁体转换为简体字符集
return lcMapString("亞洲", 0x0804, 0x2000000);
// 返回: 亚洲
// 差异说明
// 由于根据windowsAPI的开发,所以Linux中不支持。

unicodeEsc2(s)

把一个字符串转换成为\uxxxx的Unicode编码串。

参数 类型 说明
s string 字符串,Ansi字符串

返回:string

示例

return unicodeEsc('2011 tinysoft天软科技');
// 返回字符串:2011 tinysoft\u5929\u8F6F\u79D1\u6280

concat(s_n)

返回s1+s2+s3+…sn合并的字符串,支持unicode串(宽字节字符集)进行合并。

参数 类型 说明
s_n string 字符串

返回:string

示例

范例01

arr := concat("thank-", "you-", "very-", "much! ");
return arr; // 输出:thank-you-very-much!

范例02Unicode字符串的合并

s1 := multiByteToUnicodew('天软', 936);
s2 := inttostrw(2020);
return concat(s1, s2);
// 输出宽字节字符串:天软2020

rightStr(text, num_chars)

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

参数 类型 说明
text string 字符串
num_chars integer 字符个数

返回:string

示例

return rightStr('abccccdddd', 2);
// 结果:’dd

leftStr(text, num_chars)

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

参数 类型 说明
text string 字符串
num_chars integer 字符个数

返回:string

示例

return leftStr('abccccdddd', 2);
// 结果:’ab

wrapText(max_col)

按照最大行长为MaxCol自动分行。

参数 类型 说明
max_col integer 整型,每行最长字符

返回:string

示例

const_line := "Separate this sentence to two lines.";
return wrapText(const_line, 20);
{输出:
(自动换行时考虑字词的完整性)
Separate this
sentence to two
lines.
}

array2Str(value, aps)

将数组value转换成一个用aps作为分割符号的字符串,与str2Array函数相反。

参数 类型 说明
value array of string 一维数组,需要组合成字符串数据的一维数组,可以是字符串数组,也可以是数字数组
aps string 字符串,分割符,默认分割符为分号‘;

返回:string

示例

var arr := array("thank", "you", "very", "much! ");
a := array2Str(arr, "-");
return a;
// 输出:thank-you-very-much!

chr(value)

返回ascii码的值为value的字符

参数 类型 说明
value integer 整数

返回:string

示例

a_value := chr(50);
return a_value;
// 输出:字符串'2'

wideChr(value)

返回unicode码的值为value的unicode字符

参数 类型 说明
value integer 整数

返回:widestring

示例

a_value := wideChr(25105);
return a_value;
// 输出:Unicode字符串L'我'

setFormatLocalCode(code)

设置Format等函数默认使用的地区区域码,每个区域都有默认的格式。-1为默认格式,0为当前系统所属地区码。

参数 类型 说明
code integer 整型

返回:integer

示例

setFormatLocalCode(0);
return getFormatLocalCode(); // 输出:0

pos(substr, s)

子串位置,返回字符串Substr在字符串S中的位置,即S从第几个字母开始跟Substr的字符匹配,如果没有找到,就返回0。当参数类型不为字符串的时候不返回异常

参数 类型 说明
substr string 字符串类型,需要查找的字符串,子串
s string 字符串类型,源串

返回:integer

示例

a := pos('a', 'thank you');
return a; // 输出:3
return pos('fg', 'adcfgvbhj');
// 结果:4

str(x, s)

将一个实数X转换成字符串,存到参数S中

参数 类型 说明
x real 实数
s string 字符串,输出值

返回:integer

示例

str(114, s);
return s; // 输出:1.14000000000000E+0002

intToHex(value, digits)

返回整数Value转换成16进制格式的字符串,Digits为最小的数字个数,不足补0

参数 类型 说明
value integer 整数
digits integer 整数,最小数字个数

返回:string

示例

return intToHex(43, 1);
// 输出: 2B(二进制时候为:101011)

boolToStr2(b)

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

参数 类型 说明
b bool 布尔型

返回:string

示例

return boolToStr2(2>1); // 返回’ True

decodeSoundexInt(a_value)

是SoundexInt函数的反函数,将表示发音的整数转成发音的字符串(SoundEx Codes)。

参数 类型 说明
a_value integer 整数,表示发音特征的整数

返回:string

示例

test_str := "Tinysoft SoundexInt:返回表示AText的发音的整数";
test_str := decodeSoundexInt(soundexInt(test_str, 4));
return test_str;
// T521

decodeSoundexWord(a_value)

是SoundexWord函数的反函数,将表示发音的整数转成发音的字符串(SoundEx Codes)。

参数 类型 说明
a_value integer 整数,表示发音特征的整数

返回:string

示例

test_str := "Tinysoft SoundexInt:返回表示AText的发音的整数";
test_str := decodeSoundexWord(soundexWord(soundEx(test_str, 4))); // 24206
return test_str;
// T000

ansiPos(_const, s)

判断子串在字符串源串中的位置,从1开始计起,第1个即找到子串,则返回1。如果没有找到对应的子串,则返回0。其中,汉字占一个字符。

参数 类型 说明
_const string 字符串,子串
s string 字符串,源串

返回:integer

示例

return ansiPos("tinysoft", "2011 tinysoft");
// 6

strw(x, s)

将一个实数X转换成科学记数法格式的宽字节字符串,存到参数S中

参数 类型 说明
x real 实数
s widestring 字符串,输出值

返回:integer

示例

v := strw(123.123, s);
return s;
// 返回宽字节字符串:1.23123000000000E+0002

intToHexw(value, digits)

返回整数Value转换成16进制格式的宽字节字符串,Digits为最小的数字个数,不足补0。IntToHexw返回的是宽字节字符串。

参数 类型 说明
value integer 整数
digits integer 整数,最小数字个数

返回:string

示例

return intToHexw(43, 5);
// 返回宽字符串字符串:0002B

ifwstring(value, n)

判断value是否是一个宽字节字符串类型(Unicode字符集)。与ifString的区别是,ifString判断是否是多字节字符类型。可通过可选参数N对数组中的行或元素进行判断。

参数 类型 说明
value any 任意类型数值。
n integer 可选参数,整数。具体参考返回说明

返回:bool

示例

范例一:

// 判断是否为宽字节字符串类型
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)

范例二:

// 对数组第一维度数据进行类型判断
t := array(l"C", 3.56, "A", (1, l"C", 3), nil);
return ifwstring(t, -1);
// 结果:array(1,0,0,0,0)

范例三:

// 对数组中每一数据进行类型判断
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)

将布尔型转换成宽字节字符串类型并返回。与BoolToStr2的区别是,BoolToStr2返回的是多字节字符串,而BoolToStrw2返回的是宽字节字符串。

参数 类型 说明
b bool 布尔型

返回:string

示例

return boolToStrw2(2>1);
// 返回宽字节字符串:True

boolToStrw(b)

将布尔型转换成宽字节字符串类型并返回。与BoolToStr的区别是,BoolToStr返回的是多字节字符串,而BoolToStrw返回的是宽字节字符串。

参数 类型 说明
b bool 布尔型

返回:string

示例

return boolToStrw(2>1);
// 返回宽字节字符串:-1

functionVer(_type, name)

返回函数版本号。函数版本号是一个函数保存在SERVER的一个版本标识,可以用来判断函数是否被修改过。可和SAVETABLE和LOADTABLE综合使用。

参数 类型 说明
_type integer 整数,函数类型。
name string 字符串,函数名称。

返回:integer

strToBase64(s)

将字符串转换为BASE64编码并返回,该函数为本运行函数,使用时需要加rdo2

参数 类型 说明
s string 字符串

返回:string

示例

return rdo2 strToBase64('a12'); // 返回字符串:YTEy

base64ToStr(s)

将BASE64编码转换为字符串并返回,该函数为本运行函数,使用时需要加rdo2

参数 类型 说明
s string 字符串,BASE64编码的字符串。

返回:string

示例

return rdo2 base64ToStr('YTEy'); // 返回字符串:a12

encodeUriComponent(s)

将URI中的某些字符用十六进制的转义序列进行替换

参数 类型 说明
s string 字符串,含有URI或其他要编码的字符串

返回:string

decodeUriComponent(s)

将URI中的十六进制转义序用它们表示的字符替换

参数 类型 说明
s string 字符串,由EncodeURIComponent(s)函数编码的字符串

返回:string

encodeUri(s)

将URI中的某些字符用十六进制的转义序列进行替换

参数 类型 说明
s string 字符串含有 URI 或其他要编码的文本

返回:string

decodeUri(s)

将URI中的十六进制转义序用它们表示的字符替换

参数 类型 说明
s string 字符串,由EncodeURI (s)函数编码的字符串

返回:string

getMsgDigest(s, mode)

计算字符串s的摘要,返回摘要的字符串

参数 类型 说明
s string 计算摘要的字符串。
mode integer 指定摘要算法,摘要函数支持的算法包括:

返回:string

dtDate()

返回'Date'字符串。

返回:string

dtStr()

返回'String'字符串。

返回:string

dtReal()

返回'Real'字符串。

返回:string

formatFloatExt(v, dtype)

格式化输出-数字

参数 类型 说明
v real 实数
dtype integer 数据的格式

返回:string

示例

return formatFloatExt(12345.67, 1);
// 结果:’ 12,345.67
return formatFloatExt("123");
// 结果:’ -

spaceByNumber(n)

生成N个空格字符串

参数 类型 说明
n integer 整数

返回:string

示例

return write('---', spaceByNumber(2), '---');
// 运行信息打印结果:

tryUppercase(s)

将字符串S转换成大写并返回,不抛出异常,转换失败时返回""

参数 类型 说明
s string 字符串,原字符串

返回:string

示例

return tryUppercase("abc");
// 结果:"ABC"

tryLowercase(s)

将字符串S转换成小写并返回,不抛出异常,转换失败时返回""

参数 类型 说明
s string 字符串,原字符串

返回:string

示例

return tryUppercase("ABC");
// 结果:"abc"

letters(vlaue, ul)

将数字与在字符串进行对照转换。基本用法同R的letters。在超出26的时候,仿excel的列名的规则提取。用于将excel数字列名转为字符串列名:1->'A'。

参数 类型 说明
vlaue integer 整数。正整数列名
ul integer 整数。是否大写,默认为1

返回:string/array

示例

return letters(1, 0);
// 结果:a

decToInt64(s)

将字符串转换为64位整数。

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

返回:integer

示例

范例01

return decToInt64("12"); // 输出: 12L

范例02:十六进制格式字符串的转换

return decToInt64("0x12"); // 报错
return strToInt64("0x12"); // 输出:18L

decToInt64Def(s, default)

将字符串转换为64位整数。如果转换失败,则返回Default值。

参数 类型 说明
s string 字符串。需转换的字符串
default integer 整数。转换失败时返回的默认值

返回:integer

示例

范例01

return decToInt64Def("12", 1); // 输出: 12L
return decToInt64Def("test", 1); // 输出: 1L

范例02:十六进制格式字符串的转换

return decToInt64Def("0x12", 1); // 输出: 1L
return strToInt64Def("0x12", 1); // 输出:18L

tryDecToInt64(s, value)

将字符串转换为64位整数。若转换成功,转换值通过Value输出。

参数 类型 说明
s string 字符串。需转换的字符串
value integer|nil 变参。转换成功,为转换后的整数;否则,为NIL值。

返回:bool

示例

范例01:转换成功

ret := tryDecToInt64("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12L

范例02:转换失败

ret := tryDecToInt64("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"

范例03:十六进制格式字符串的转换

ret := tryDecToInt64("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
ret := tryStrToInt64("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18L

decToInt32(s)

将字符串转换为32位整数。

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

返回:integer

示例

范例01

return decToInt32("12"); // 输出: 12

范例02:十六进制格式字符串的转换

return decToInt32("0x12"); // 报错
return strToInt32("0x12"); // 输出:18

decToInt32Def(s, default)

将字符串转换为32位整数。如果转换失败,则返回Default值。

参数 类型 说明
s string 字符串。需转换的字符串
default integer 整数。转换失败时返回的默认值

返回:integer

示例

范例01

return decToInt32Def("12", 1); // 输出: 12
return decToInt32Def("test", 1); // 输出: 1

范例02:十六进制格式字符串的转换

return decToInt32Def("0x12", 1); // 输出: 1
return strToInt32Def("0x12", 1); // 输出:18

tryDecToInt32(s, value)

将字符串转换为32位整数。若转换成功,转换值通过Value输出。

参数 类型 说明
s string 字符串。需转换的字符串
value integer|nil 变参。转换成功,为转换后的整数;否则,为NIL值。

返回:bool

示例

范例01:转换成功

ret := tryDecToInt32("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12

范例02:转换失败

ret := tryDecToInt32("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"

范例03:十六进制格式字符串的转换

ret := tryDecToInt32("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
ret := tryStrToInt32("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18

toHttpPostdata(v, data_mode)

根据数据模式转换为字符串格式

参数 类型 说明
v integer 整数,数据
data_mode string 字符串,数据模式

返回:string

示例

// 转换json格式数据。
v := array("Type": 1, "IDs": array("SZ000001"), "SUBs": array("date_s", "price"));
mode := "json";
return toHttpPostdata(v, mode);
// 结果:{"Type":1,"IDs":["SZ000001"],"SUBs":["date_s","price"]}

decToInt(s)

将字符串转换为整数。

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

返回:integer

示例

范例01

return decToInt("12"); // 输出: 12

范例02:十六进制格式字符串的转换

return decToInt("0x12"); // 报错
return strToInt("0x12"); // 输出:18

decToIntDef(s, default)

将字符串转换为整数。如果转换失败,则返回Default值。

参数 类型 说明
s string 字符串。需转换的字符串
default integer 整数。转换失败时返回的默认值

返回:integer

示例

范例01

return decToIntDef("12", 1); // 输出: 12
return decToIntDef("test", 1); // 输出: 1

范例02:十六进制格式字符串的转换

return decToIntDef("0x12", 1); // 输出: 1
return strToIntDef("0x12", 1); // 输出:18

tryDecToInt(s, value)

将字符串转换为整数。若转换成功,转换值通过Value输出。

参数 类型 说明
s string 字符串。需转换的字符串
value integer|nil 变参。转换成功,为转换后的整数;否则,为NIL值。

返回:bool

示例

范例01:转换成功

ret := tryDecToInt("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12

范例02:转换失败

ret := tryDecToInt("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"

范例03:十六进制格式字符串的转换

ret := tryDecToInt("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
ret := tryStrToInt("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18

floatToStrne(value)

将实数转换成字符串类型。和FloatToStr的区别:在处理浮点数据时,FloatToStrne的结果不会输出为1E15等格式

参数 类型 说明
value real 实数

返回:string

示例

return floatToStrne(23.4);
// 输出字符串:"23.4"
return floatToStrne(1E15);
// 大数量级数据,输出:"1000000000000000"

fuzzyCompare(_type, s1, s2)

根据指定算法,计算两字符串的相似性

参数 类型 说明
_type integer 模糊匹配算法类型,支持如下几种算法:
s1 string 字符串1
s2 string 字符串2

返回:real

示例

// 使用Jaccard相似度算法,计算字符串"kitten"和"sitting"的相似性
return fuzzyCompare(fzJaccard(), "kitten", "sitting"); // 等价于FuzzyCompare(2,"kitten","sitting")
// 返回:0.222222222222222

fuzzyCompareEx(_type, s1, s2, n, nret)

根据指定算法,计算两字符串的相似性

参数 类型 说明
_type integer 模糊匹配算法类型,支持如下几种算法:
s1 string 字符串1
s2 string 字符串2
n integer 仅指定算法为FzJaccard、FzCosine、FzSimHash时,该参数有效;其对应含义和默认值如下:
nret integer 输出值;指定不同的算法时,其对应含义如下:

返回:real

示例

// 使用Jaccard相似度算法,指定切分字符长度为1,计算字符串"kitten"和"sitting"的相似性
t := fuzzyCompareEx(fzJaccard(), "kitten", "sitting", 1, nret);
return array(t, nret);
// t值为相似性,nret值为两字符串切分后交集中元素个数,返回值为array(0.428571428571429,3)

fzEditDistance()

基于编辑距离(Edit Distance)的模糊匹配算法,核心是计算将一个字符串转换为另一个字符串所需的最小编辑操作次数,允许的操作包含插入、删除、替换三类。

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算

return fuzzyCompare(fzEditDistance(), "kitten", "sitting");
// 返回:0.571428571428571

范例一:FuzzyCompareEx相似性计算

t := fuzzyCompareEx(fzEditDistance(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.571428571428571,3)
// 算法对比解析:
// 字符串"kitten"转换为"sitting"需要3步(k->se->i,添加g),字符串总长度7,相似度为1-3/7=4/7(即0.571428571428571

fzHammingDistance()

Hamming Distance(汉明距离)算法类型:计算两字符串对应位置上不同字符的数量。

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算

return fuzzyCompare(fzHammingDistance(), "kitten", "sitting");
// 返回:0.571428571428571

范例二:FuzzyCompareEx相似性计算

t := fuzzyCompareEx(fzHammingDistance(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.571428571428571,3)
// 算法对比解析:
// 字符串"kitten"、"sitting"对应位置上不同的字符有3处(k->s, e->i, g),字符串总长度为7,相似度为1-3/7=4/7(即0.571428571428571

fzLongestSubstring()

Longest Substring(最长公共子串)算法类型:找出两字符串中连续出现的最长相同子串。

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算

return fuzzyCompare(fzLongestSubstring(), "kitten", "sitting");
// 返回:0.428571428571429

范例二:FuzzyCompareEx相似性计算

t := fuzzyCompareEx(fzLongestSubstring(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.428571428571429,3)
// 算法对比解析:
// 字符串"kitten"、"sitting"中连续出现的最长相同子串为"itt",字符串总长度为7,相似度为3/7(即0.428571428571429

fzLongestSequnce()

Longest Sequnce(最长公共子序列)算法类型:找出两字符串中顺序相同但不必连续的最长子序列

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算

return fuzzyCompare(fzLongestSequnce(), "kitten", "sitting");
// 返回:0.571428571428571

范例二:FuzzyCompareEx相似性计算

t := fuzzyCompareEx(fzLongestSequnce(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.571428571428571,4)
// 算法对比解析:
// 字符串"kitten"、"sitting"中顺序相同但不必连续的最长子序列为"ittn",字符串总长度为7,相似度为4/7(即0.571428571428571

fzJaccard()

Jaccard相似度算法类型:将字符串根据指定长度n(默认值为2)划分为两个字符集合,计算两集合交集元素个数与并集元素个数的比值。

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算,字符切分长度为2

return fuzzyCompare(fzJaccard(), "kitten", "sitting");
// 返回:0.222222222222222

范例二:FuzzyCompareEx相似性计算,指定字符切分长度为1

t := fuzzyCompareEx(fzJaccard(), "kitten", "sitting", 1, nret);
return array(t, nret);
// 返回:array(0.428571428571429,3)
// 算法对比解析:
FuzzyCompare:字符切分长度为2,字符串"kitten"切分后的集合为:{ki, it, tt, te, en}"sitting"为:{si, it, tt, ti, in, ng};交集:{it, tt},并集:{ki, it, tt, te, en, si, ti, in, ng},相似度为2/9(即0.222222222222222
FuzzyCompareEx:指定字符切分长度为1,字符串"kitten"切分后的集合为:{k, i, t, e, n}"sitting"为:{s, i, t, n, g},交集:{i, t, n},并集:{k, i, t, e, n, s, g},相似度为3/7(即0.428571428571429

fzCosine()

Cosine(余弦相似度)算法类型:将字符串根据指定长度n(默认值为2)划分为两个字符集合,将字符集合转换为向量,计算两向量夹角的余弦值。

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算,字符切分长度为2

return fuzzyCompare(fzCosine(), "kitten", "sitting");
// 返回:0.365148371670111

范例二:FuzzyCompareEx相似性计算,指定字符切分长度为1

return fuzzyCompareEx(fzCosine(), "kitten", "sitting", 1, nret);
// 返回:0.746202507244636
// 算法对比解析:
FuzzyCompare:字符切分长度为2,字符串"kitten"切分后的集合为:{ki, it, tt, te, en}"sitting"{si, it, tt, ti, in, ng};转换成向量分别为:[1, 1, 1, 1, 1, 0, 0, 0, 0]、[0, 1, 1, 0, 0, 1, 1, 1, 1],代入算法中,计算出的相似度为0.365148371670111
FuzzyCompareEx:字符切分长度为1,字符串"kitten"切分后的集合为:{k, i, t, e, n}"sitting"{s, i, t, n, g},转换成向量分别为:[1, 1, 2, 1, 1, 0, 0]、[0, 2, 2, 0, 1, 1, 1],代入算法中,计算出的相似度为0.746202507244636

fzJaroWinkler()

Jaro-Winkler距离算法类型:先统计两字符串的匹配字符数与换位次数,并代入Jaro距离算法公式,得到相似度,再根据两字符串的公共前缀长度给予额外加权,得到最终的相似度

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算

return fuzzyCompare(fzJaroWinkler(), "kitten", "sitting");
// 返回:0.746031746031746

范例二:FuzzyCompareEx相似性计算

return fuzzyCompareEx(fzJaroWinkler(), "kitten", "sitting", n, nret);
// 返回:0.746031746031746

fzSimHash()

SimHash(局部敏感哈希)算法类型:对字符串分词并计算加权哈希生成二进制指纹,比较两个指纹间的对应位置上不同字符的数量

返回:integer

示例

// 应用于两字符串的相似性计算的相关模型中,如FuzzyCompare与FuzzyCompareEx。

范例一:FuzzyCompare相似性计算,特征词数量为3

return fuzzyCompare(fzSimHash(), "kitten", "sitting");
// 返回:0.640625

范例二:FuzzyCompareEx相似性计算,特征词数量为1

t := fuzzyCompareEx(fzSimHash(), "kitten", "sitting", 1, nret);
return array(t, nret);
// 返回:array(0.921875,5)

formatStrExt(s)

判断字符串是否是字符串,不是字符串的显示为“-”

参数 类型 说明
s string 字符串

返回:string

示例

return formatStrExt('aaaaa');
// 结果:’aaaaa
return formatStrExt(123);
// 结果:’-

seprateStrToTotal(s)

把用;分割的字符串转换为#分割

参数 类型 说明
s string 字符串

返回:string

示例

return seprateStrToTotal('债券型;现金型;配置型;股票型;保本型');
// 结果:’债券型#现金型#配置型#股票型#保本型’

totalStrToSeprate(s)

把用#分割的字符串转换为;分割

参数 类型 说明
s string 字符串

返回:string

示例

return totalStrToSeprate ('债券型#现金型#配置型#股票型#保本型');
// 结果:’债券型;现金型;配置型;股票型;保本型’

dateStrToArr(end_dates, sep1, sep2)

把日期区间字符串转换为列表

参数 类型 说明
end_dates string 日期区间字符串
sep1 string 日期区间字符串分割符
sep2 string 开始和截止日期分割符

返回:array

示例

return dateStrToArr('2007-9-10;2007-9-10', '$', ';'); // '$'表示结束位置
// 输出:
// 示例包含说明文字,未作为可执行片段运行。

rDateStrToArr(rdate_list)

把报告期字符串转换为列表

参数 类型 说明
rdate_list string 字符串,报告期字符串,多个报告期以分号区分

返回:array

示例

return rDateStrToArr('20070331;20070630');
// 输出:
// Execute script error at Line:1
// function:__main__:line 1:instruction:usercall: function:rDateStrToArr compile error or not found
// function:__main__:line 1:instruction:usercall: function execute error

replaceStrByReg(s, reg_from_text, to_text)

正则表达式快速字符串替换,大小写敏感。

参数 类型 说明
s string 字符串。源串
reg_from_text string 字符串。待替换的部分,正则表达式
to_text string 字符串。替换的字符串

返回:string

示例

return replaceStrByReg("abcdeak", "A", "kkkk");
// 结果:abcdeak

replaceTextByReg(s, reg_from_text, to_text)

正则表达式快速字符串替换,大小写不敏感。

参数 类型 说明
s string 字符串。源串
reg_from_text string 字符串。待替换的部分,正则表达式
to_text string 字符串。替换的字符串

返回:string

示例

return replaceTextByReg("abcdeak", "a", "kkkk");
// 结果:kkkkbcdekkkkk

parseRegExpr3(s, reg_from_text, to_text, parse_ctrls)

直接返回输出的正则表达式解析。

参数 类型 说明
s string 字符串。源串
reg_from_text string 字符串。待替换的部分,正则表达式
to_text string 字符串。替换的字符串
parse_ctrls string 字符串。正则表达式控制串

返回:string

示例

return parseRegExpr3("abcdeak", "ab", "kkkk", "ir");
// 结果:kkkkcdeak

floatToStrneW(value)

将实数转换成宽字节字符串类型。和FloatToStrW的区别:在处理大数量级数据(如1E15、10^15等)时,FloatToStrneW的结果不会输出为1E15等格式。

参数 类型 说明
value real 实数

返回:string

示例

return floatToStrneW(1234.1234);
// 输出:L"1234.1234"
return floatToStrneW(1E15);
// 大数量级数据,输出:L"1000000000000000"

hztoPy(hz)

汉字翻译为拼音

参数 类型 说明
hz string String 汉字

返回:string

示例

return hztoPy("华夏优势"); // HXYS
return hztoPy("华夏盛势"); // HXCS HXSS