Files
playbook/skills/tsl-api-reference/references/codegen/builtin/string.md
T
csh 9010829c6d feat(tsl-api-reference): expand and reorganize api catalog
Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references.

Keep the existing generated index without rebuilding after signature normalization.
2026-08-10 18:26:24 +08:00

106 KiB
Raw Blame History

Builtin - 字符串

adjustLineBreaks(s, style)

声明:function

统一字符串中的换行符。style 为 0 时使用换行符,为 1 时使用回车加换行符;也支持数组批量处理。

参数 类型 说明
s string|array 要调整的字符串或字符串数组
style TTextLineBreakStyle 0 表示 LF1 表示 CRLF

返回:string|array

示例

echo adjustLineBreaks("a\r\nb", 0);
// 输出:
// a
// b

ansiCompareFileName(s1, s2)

声明:function

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

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

返回:integer

示例

范例01

echo ansiCompareFileName('index.tsl', "test.tsl");
// 输出:-11

差异说明:返回值的绝对值大小无实际意义,在不同操作系统中结果也表现不一。Linux 中文件名区分大小写,而 Windows 中不区分,所以对比结果会有差异。如下:

范例02:Windows 中(不区分大小写)

echo ansiCompareFileName("D:\\test\\file1.txt", "D:\\Test\\File1.txt");
// Windows 输出:0Linux 文件名区分大小写,结果为正数。

范例03Linux 中(区分大小写)

echo ansiCompareFileName("/tinysoft/file1.txt", "/Tinysoft/File1.txt");
// 结果为32,因为区分大小写,两文件名不相等。

ansiContainsStr(a_text, a_sub_text)

声明:function

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

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

返回:bool

示例

a_text := 'abcdefg';
echo ansiContainsStr(a_text, 'Bcd');
// 输出:0

ansiContainsText(a_text, a_sub_text)

声明:function

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

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

返回:bool

示例

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

ansiDequotedStr(s, aquote)

声明:function

去掉字符串开头的指定引号,并把字符串中成对的重复引号还原为单个引号。

参数 类型 说明
s string 源字符串
aquote char 要去掉的引号字符

返回:string

示例

echo ansiDequotedStr('"Tinysoft"', '"');
// 输出:Tinysoft

ansiEndsStr(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

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

ansiEndsText(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

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

ansiFormat(formatstr, v1, v2, ...)

声明:function

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

参数 类型 说明
formatstr string 格式串,指明后面的参数的输出格式。
v1 any 第一个格式参数
v2 any 可选。第二个格式参数
... any 可选。更多与 formatstr 对应的格式参数

返回:string

示例

echo ansiFormat("%d-%s", 7, "TSL");
// 输出:7-TSL

ansiIndexStr(a_text, a_values)

声明:function

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

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

返回:int

示例

echo ansiIndexStr("Beta", array("alpha", "Beta", "gamma"));
// 输出:1

ansiIndexText(a_text, a_values)

声明:function

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

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

返回:int

示例

echo ansiIndexText("BETA", array("alpha", "beta", "gamma"));
// 输出:1

ansiLowerCaseFileName(s)

声明:function

返回小写的文件名。

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

返回:string

示例

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

ansiMatchStr(a_text, avalues)

声明:function

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

参数 类型 说明
a_text string 字符串类型,子串
avalues array 字符串型数组,源串数组

返回:bool

示例

echo ansiMatchStr("Beta", array("alpha", "Beta", "gamma"));
// 输出:1

ansiMatchText(a_text, avalues)

声明:function

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

参数 类型 说明
a_text string 字符串类型,子串
avalues array 字符串型数组,源串数组

返回:bool

示例

echo ansiMatchText("BETA", array("alpha", "beta", "gamma"));
// 输出:1

ansiPos(substr, s)

声明:function

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

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

返回:integer

示例

echo ansiPos("tinysoft", "2011 tinysoft");
// 输出:6

ansiQuotedStr(s, quote)

声明:function

在字符串两端加上指定引号,并把源字符串中的同类引号加倍。

参数 类型 说明
s string 源字符串
quote char 要添加的引号

返回:string

示例

echo ansiQuotedStr("Tiny's", "'");
// 输出:'Tiny''s'

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

示例

a_text := "Big will be replaced by \'BIG\', but big won\'t be replaced by \'BIG\'.";
a_from_text := "Big";
a_to_text := "BIG";
echo ansiReplaceStr(a_text, a_from_text, a_to_text);
// 输出:BIG will be replaced by 'BIG', but big won't be replaced by 'BIG'.

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

示例

a_text := "First will be instead by \'Final\'";
a_from_text := "First";
a_to_text := "FINAL";
echo ansiReplaceText(a_text, a_from_text, a_to_text);
// 输出字符串:FINALwill be instead by 'Final'
// 输出:Final will be instead by F

ansiResemblesText(a_text, a_other)

声明:function

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

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

返回:bool

示例

范例01

echo ansiResemblesText("sun", "sum");
// 输出:1

范例02

echo ansiResemblesText("sun", "fun");
// 输出:0

范例03

echo ansiResemblesText("transaction", "transact");
// 输出:1

ansiStartsStr(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

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

ansiStartsText(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

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

ansiStr2Array(value, aps)

声明:function

按分隔符把字符串拆成一维字符串数组。省略 aps 时使用分号;与 str2Array 相比,本函数支持 MBCS 字符串。

参数 类型 说明
value string 要拆分的字符串
aps string 分隔符,省略时默认为分号

返回:array

示例

echo trim(toStn(ansiStr2Array("alpha,beta,gamma", ",")));
// 输出:array("alpha","beta","gamma")

ansiToUtf8(s)

声明:function

转换为UTF8编码的字符串。

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

返回:string

示例

utf8_text := ansiToUtf8('2011 tinysoft天软科技');
echo utf8ToAnsi(utf8_text) = '2011 tinysoft天软科技';
// 输出:1

ansiUpperCaseFileName(s)

声明:function

返回大写的文件名。

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

返回:string

示例

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

appendStr(dest, s)

声明:function

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

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

返回:void

示例

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

array2Str(value, aps)

声明:function

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

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

返回:string

示例

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

base64ToStr(s)

声明:function

将BASE64编码转换为字符串并返回,该函数为本运行函数;可直接调用

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

返回:string

示例

echo base64ToStr('YTEy'); // 输出:a12

boolToStr(b, use_bool_strs)

声明:function

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

参数 类型 说明
b bool 要转换的布尔值
use_bool_strs bool 布尔型,一般传入假值

返回:string

示例

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

boolToStr2(b)

声明:function

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

参数 类型 说明
b bool 布尔型

返回:string

示例

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

boolToStrw(b)

声明:function

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

参数 类型 说明
b bool 布尔型

返回:string

示例

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

boolToStrw2(b)

声明:function

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

参数 类型 说明
b bool 布尔型

返回:string

示例

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

byteToCharIndex(s, index)

声明:function

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

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

返回:integer

示例

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

byteToCharLen(s, max_len)

声明:function

判断字符流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);
echo b1;
// 输出:28

byteType(s, index)

声明:function

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

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

返回:tmbcsbytetype

示例

范例01

// 单字节字符‘t
echo byteType("2011 tinysoft", 6);
// 输出:0

范例02

// 多字节字符‘天’
echo byteType("2011 tinysoft天软", 14);
// 输出:1

范例03

// 多字节字符‘软’,且为最后一个字符
echo byteType("2011 tinysoft天软", 15);
// 输出:2

范例04

// 单字节字符‘1’,最后一个字符
echo byteType("2011 ", 4);
// 输出:0

changeFileExt(file_name, extension)

声明:function

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

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

返回:string

示例

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

charLength(s, index)

声明:function

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

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

返回:integer

示例

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

charToByteIndex(s, index)

声明:function

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

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

返回:integer

示例

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

charToByteLen(s, max_len)

声明:function

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

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

返回:integer

示例

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

chr(value)

声明:function

返回ascii码的值为value的字符

参数 类型 说明
value integer 整数

返回:string

示例

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

compareStr(s1, s2)

声明:function

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

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

返回:integer

示例

result := compareStr("万科A", "万科A");
echo result < 0;
// 输出:1,表示左侧字符串小于右侧字符串

compareText(s1, s2)

声明:function

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

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

返回:integer

示例

范例01

echo compareText("SZ000002", "SZ000001"); // 输出:1

范例02

echo compareText("SZ000001", "sz000001"); // 输出:0

范例03

result := compareText("万科A", "万科A");
echo result > 0;
// 输出:1,表示左侧字符串大于右侧字符串

concat(s_n)

声明:function

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

参数 类型 说明
s_n string 字符串

返回:string

示例

范例01

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

范例02Unicode字符串的合并

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

containsStr(a_text, a_sub_text)

声明:function

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

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

返回:bool

示例

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

containsText(a_text, a_sub_text)

声明:function

判断源字符串是否包含指定子串,比较时不区分大小写。

参数 类型 说明
a_text string 源字符串
a_sub_text string 要查找的子串

返回:bool

示例

echo containsText("TinySoft", "soft");
// 输出:1

copy(s, index, count)

声明:function

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

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

返回:string

示例

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

currToStr(value)

声明:function

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

参数 类型 说明
value currency 实数

返回:string

示例

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

currtoStrw(value)

声明:function

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

参数 类型 说明
value currency 实数

返回:string

示例

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

decoderadixstr(s, presufflen, radix)

声明:function

对指定进制格式的源码字符串进行解码。与Encoderadixstr的功能相反。

参数 类型 说明
s string 字符串
presufflen int 整型,前缀或者后缀长度。
radix int 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位为1表明采用小写字母。低6位为进制,最大支持36进制。

返回:string

示例

echo decoderadixstr("0x310x310x320x32", 2, 16), "\n";
// 输出:1122

decoderadixwstr(s, presufflen, radix)

声明:function

对指定进制指定格式的宽字节源码串进行解码。与Encoderadixwstr的功能相反。

参数 类型 说明
s string 字符串
presufflen int 整型,前缀或者后缀长度。
radix int 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位为1表明采用小写字母。低6位为进制,最大支持36进制。

返回:string

示例

echo decoderadixwstr("0x00310x00310x00320x0032", 2, 16) = "1122", "\n";
// 输出:1

decodeSoundexInt(a_value)

声明:function

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

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

返回:string

示例

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

decodeSoundexWord(a_value)

声明:function

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

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

返回:string

示例

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

decodeUri(s)

声明:function

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

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

返回:string

示例

echo decodeUri("https://example.com/a+b?x=1&y=2");
// 输出:https://example.com/a b?x=1&y=2

decodeUriComponent(s)

声明:function

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

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

返回:string

示例

echo decodeUriComponent("a+b%2Fc%3Fd%3De%26f");
// 输出:a b/c?d=e&f

dupeString(a_text, a_count)

声明:function

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

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

返回:string

示例

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

encoderadixstr(s, presuff, radix)

声明:function

将字符串转换为指定进制格式的源码。

参数 类型 说明
s string 字符串
presuff string 字符串,指定的前缀或者后缀串。
radix int 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位 为1表明采用小写字母。低6位为进制,最大支持36进制。

返回:string

示例

echo encoderadixstr("1122", "0x", 16), "\n";
// 输出:0x310x310x320x32

encoderadixwstr(s, presuff, radix)

声明:function

将字符串按宽字节码转换成指定进制格式的源码。而Encoderadixstr是按多字节字码进行转换。

参数 类型 说明
s string 字符串
presuff string 字符串,指定的前缀或者后缀串。
radix int 整数,最高位(31位)为1的时候,表明为后缀方式,否则为前缀模式。第30位 为1表明采用小写字母。低6位为进制,最大支持36进制。

返回:string

示例

echo encoderadixwstr("1122", "0x", 16) = "0x00310x00310x00320x0032", "\n";
// 输出:1

encodeUri(s)

声明:function

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

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

返回:string

示例

echo encodeUri("https://example.com/a b?x=1&y=2");
// 输出:https://example.com/a+b?x=1&y=2

encodeUriComponent(s)

声明:function

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

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

返回:string

示例

echo encodeUriComponent("a b/c?d=e&f");
// 输出:a+b%2Fc%3Fd%3De%26f

endsStr(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

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

endsText(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

text := 'abcdefg';
echo endsText('Efg', text);
// 输出:1
// 差异说明:对空字符串,Windows 判定为 1、Linux 为 0(如 endsText("", "A"));其它表现无差别。

excludeTrailingBackslash(s)

声明:function

去掉路径的’\’结尾。

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

返回:string

示例

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

excludeTrailingPathDelimiter(s)

声明:function

去掉路径的’\’结尾。

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

返回:string

示例

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

exportjsonstring(data, n)

声明:function

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

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

返回:string

示例

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

s := "万科A";
echo exportJsonString(s);
// 返回字符串:"\u4E07\u79D1A"

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

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

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

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

exportJsonStringMbcs(data, n)

声明:function

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

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

返回:string

示例

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

s := "万科A";
echo exportJsonStringMbcs(s);
// 返回字符串:"\"万科A\""

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

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

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

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

exportJsonStringUtf8(data, n)

声明:function

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

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

返回:string

示例

范例01

a := array(
    ("StockID": "SZ000002", "StockName": "万科A", "date": "2020-09-01", "close": 27.22),
    ("StockID": "SZ000002", "StockName": "万科A", "date": "2020-09-02", "close": 27.52)
);
utf8_json := exportJsonStringUtf8(a);
echo utf8ToAnsi(utf8_json);
// 输出:UTF-8 JSON 转回当前 ANSI 代码页后的可读字符串

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

s := array((1.3245, 2.5123), ('Tinysoft天软', '天软科技'));
utf8_json := exportJsonStringUtf8(s, 2);
echo utf8ToAnsi(utf8_json);
// 输出:[[1.32,2.51],["Tinysoft天软","天软科技"]]

extractFileDir(file_name)

声明:function

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

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

返回:string

示例

echo 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

示例

drive := extractFileDrive("D:\\Tinysoft\\tslweb\\web\\test.tsl");
echo ifThen(length(drive) > 0, drive, "当前系统无盘符");
// Windows 输出:D:
// Linux 输出:当前系统无盘符

extractFileExt(file_name)

声明:function

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

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

返回:string

示例

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

extractFileName(file_name)

声明:function

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

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

返回:string

示例

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

extractFilePath(file_name)

声明:function

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

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

返回:string

示例

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

extractRelativePath(base_name, dest_name)

声明:function

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

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

返回:string

示例

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

floatToStr(value)

声明:function

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

参数 类型 说明
value real 实数

返回:string

示例

范例01

echo floatToStr(23.4);
// 输出字符串:"23.4"

范例02

echo floatToStr(1E15);
// 大数量级数据,输出:"1E15"

floattoStrw(value)

声明:function

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

参数 类型 说明
value real 实数

返回:string

示例

范例01

echo floattoStrw(1234.1234);
// 输出:L"1234.1234"

范例02

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

format(formatstr, v1, v2, v3)

声明:function

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

在占位计算时,Format 把一个汉字当作一个位置;如需把一个汉字当作两个位置,请用 AnsiFormat(参数定义与 Format 完全一致)。

参数 类型 说明
formatstr string 格式串,由基本文本与 % 占位符组成,写法见下文
v1, v2, v3 any 依次对应各占位符的值,个数不限

格式串由基本文本字符和占位符组成:基本文字按原样显示,占位符(由 % 标出)依次对应 v1,v2,v3,… 各参数。单个占位符的完整写法(各段紧挨、顺序固定、中间不能有空格):

%[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 字符串、%% 转义)

echo format("Name: %s, Age: %d, Rate: %d%%", "Tom", 18, 50);
// 输出字符串:Name: Tom, Age: 18, Rate: 50%

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

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

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

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

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

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

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

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

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

echo format("%.1N", 1234400.56789);
// 输出:取决于当前系统区域设置

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

echo format("%.1M", 1234400.56789);
// 输出:取决于当前系统货币格式

范例七:(参数的索引)

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

formatCurr(format, value)

声明:function

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

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

返回:string

示例

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

formatFloat(format, value)

声明:function

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

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

返回:string

示例

echo formatFloat('0.000E+00', 23224); // 科学计数
// 输出字符串:"2.322E+04"
echo formatFloat('##,###.00', 123); // 千分位 + 两位小数
// 输出字符串:"123.00"
echo formatFloat('00,000.00', 123); // 零填充
// 输出:00123.00

getChar(s, index)

声明:function

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

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

返回:char

示例

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

getFormatLocalCode()

声明:function

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

返回:integer

示例

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

getLikeFlag()

声明:function

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

返回:integer

示例

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

getMsgDigest(s, mode)

声明:function

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

参数 类型 说明
s string 计算摘要的字符串
mode integer 摘要算法编号

mode 支持以下摘要算法:

mode 算法
0 CRC32
1 MD5
2 SHA1
3 SHA224
4 SHA256
5 SHA384
6 SHA512
256 SM3

返回:string

示例

digests := array(
    "CRC32": getMsgDigest("hello", 0),
    "MD5": getMsgDigest("hello", 1),
    "SHA1": getMsgDigest("hello", 2),
    "SHA224": getMsgDigest("hello", 3),
    "SHA256": getMsgDigest("hello", 4),
    "SHA384": getMsgDigest("hello", 5),
    "SHA512": getMsgDigest("hello", 6),
    "SM3": getMsgDigest("hello", 256)
);
echo trim(toStn(digests));
// 输出:
// CRC32=3610A686
// MD5=5D41402ABC4B2A76B9719D911017C592
// SHA1=AAF4C61DDCC5E8A2DABEDE0F3B482CD9AEA9434D
// SHA224=EA09AE9CC6768C50FCEE903ED054556E5BFC8347907F12598AA24193
// SHA256=2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824
// SHA384=59E1748777448C69DE6B800D7A33BBFB9FF1B463E44354C3553BCDB9C666FA90125A3C79F90397BDF5F6A13DE828684F
// SHA512=9B71D224BD62F3785D96D46AD3EA3D73319BFBC2890CAADAE2DFF72519673CA72323C3D99BA5C11D7C7ACC6E14B8C5DA0C4663475C2E5C3ADEF46F73BCDEC043
// SM3=BECBBFAAE6548B8BF0CFCAD5A27183CD1BE6093B1CCECCC303D9C61D0A645268

getMsgDigest(alias, filename, mode)

声明:function

计算 filename 指定文件的摘要并返回摘要字符串。alias 的使用方式与 ReadFile 的目录别名一致;空字符串表示不使用目录别名。

参数 类型 说明
alias string 文件目录别名
filename string 要计算摘要的文件名或路径
mode integer 摘要算法编号

mode 支持以下摘要算法:

mode 算法
0 CRC32
1 MD5
2 SHA1
3 SHA224
4 SHA256
5 SHA384
6 SHA512
256 SM3

返回:string

示例

以下示例假定当前目录存在内容为 hellodigest-example.txt

filename := "digest-example.txt";
alias := "";
digests := array(
    "CRC32": getMsgDigest(alias, filename, 0),
    "MD5": getMsgDigest(alias, filename, 1),
    "SHA1": getMsgDigest(alias, filename, 2),
    "SHA224": getMsgDigest(alias, filename, 3),
    "SHA256": getMsgDigest(alias, filename, 4),
    "SHA384": getMsgDigest(alias, filename, 5),
    "SHA512": getMsgDigest(alias, filename, 6),
    "SM3": getMsgDigest(alias, filename, 256)
);
echo trim(toStn(digests));
// 输出:
// CRC32=3610A686
// MD5=5D41402ABC4B2A76B9719D911017C592
// SHA1=AAF4C61DDCC5E8A2DABEDE0F3B482CD9AEA9434D
// SHA224=EA09AE9CC6768C50FCEE903ED054556E5BFC8347907F12598AA24193
// SHA256=2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824
// SHA384=59E1748777448C69DE6B800D7A33BBFB9FF1B463E44354C3553BCDB9C666FA90125A3C79F90397BDF5F6A13DE828684F
// SHA512=9B71D224BD62F3785D96D46AD3EA3D73319BFBC2890CAADAE2DFF72519673CA72323C3D99BA5C11D7C7ACC6E14B8C5DA0C4663475C2E5C3ADEF46F73BCDEC043
// SM3=1AB21D8355CFA17F8E61194831E81A8F22BEC8C728FEFB747ED035EB5082AA2B
// 当前固定 Linux 解释器的文件重载在 mode=256 时返回空输入的 SM3 摘要。

importjsonstring(json)

声明:function

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

参数 类型 说明
json string 字符串,json串。

返回:any

示例

echo trim(toStn(importjsonstring('{"code":"A","value":1}')));
// 输出:array("code":"A","value":1)

includeTrailingBackslash(s)

声明:function

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

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

返回:string

示例

echo includeTrailingBackslash("D:\\Tinysoft\\tslweb\\web");
// 输出:D:\Tinysoft\tslweb\web\

差异说明:与路径中已有的路径分隔符保持一致;当路径中不存在分隔符时,Windows 默认追加 \Linux 默认追加 /。如在 Linux 中 includeTrailingBackslash("/Tinysoft") 返回 /Tinysoft/

includeTrailingPathDelimiter(s)

声明:function

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

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

返回:string

示例

echo includeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web");
// 输出:D:\Tinysoft\tslweb\web\

差异说明:与路径中已有的路径分隔符保持一致;当路径中不存在分隔符时,Windows 默认追加 \Linux 默认追加 /。如在 Linux 中 includeTrailingPathDelimiter("/Tinysoft") 返回 /Tinysoft/

intToHex(value, digits)

声明:function

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

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

返回:string

示例

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

intToHexw(value, digits)

声明:function

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

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

返回:string

示例

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

intToStr(value)

声明:function

整数Value转换成字符串

参数 类型 说明
value integer 整数

返回:string

示例

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

inttostrw(value)

声明:function

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

参数 类型 说明
value integer 整数

返回:string

示例

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

isDelimiter(delimiters, s, index)

声明:function

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

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

返回:bool

示例

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

isPathDelimiter(s, index)

声明:function

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

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

返回:bool

示例

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

isValidIdent(ident)

声明:function

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

参数 类型 说明
ident string 字符串

返回:bool

示例

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

lastDelimiter(delimiters, s)

声明:function

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

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

返回:integer

示例

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

lcMapString(s, lcid, flag)

声明:function

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

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

返回:string

示例

echo lcMapString("亞洲", 0x0804, 0x2000000); // 繁体转简体字符集
// 输出: 亚洲
// 差异说明:基于 Windows APILinux 不支持。

leftBStr(a_text, a_count)

声明:function

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

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

返回:string

示例

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

leftStr(text, num_chars)

声明:function

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

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

返回:string

示例

echo leftStr('abccccdddd', 2);
// 输出:’ab

lengthW(atext)

声明:function

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

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

返回:integer

示例

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

lowerCase(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:string

示例

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

makeLcid(language_id, sort_id)

声明:function

LCID编码函数。

参数 类型 说明
language_id int 语言ID标识ID。
sort_id int 排序顺序标识ID。

返回:int

示例

echo makeLcid(2052, 0);
// 输出:2052

midBStr(a_text, astart, a_count)

声明:function

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

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

返回:string

示例

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

midStr(a_text, astart, a_count)

声明:function

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

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

返回:string

示例

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

multiByteToUnicode(s, cp)

声明:function

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

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

返回:string

示例

echo multiByteToUnicode("ABC", 936);
// 输出:"A\0B\0C\0\0"

multiByteToUnicodew(s, cp)

声明:function

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

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

返回:string

示例

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

nextCharIndex(s, index)

声明:function

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

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

返回:integer

示例

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

ord(value)

声明:function

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

参数 类型 说明
value string WideString\

返回:int

示例

echo ord("A");
// 输出:65

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

声明:function

正则表达式匹配。匹配成功返回 1,并把匹配串及子匹配组(所有匹配)写入 matched 数组,把对应位置和长度写入 matched_posmatched_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:匹配数字、指定字符串

source := "ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
parseRegExpr("(\\d+).*(Tinysoft)", source, "", result, m_pos, mlen);
echo trim(toStn(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);
echo trim(toStn(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"[一-龥]+"; // 匹配汉字的正则表达式->也是unicode串
ret := parseRegExpr(reg, source, "", result, m_pos, mlen);
echo trim(toStn(result));
// 输出:array((L"你好"))

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

source := "hello tiny tiny tiny tiny tiny";
reg := "hello.*(tiny)";
ret := parseRegExpr(reg, source, "u", result, m_pos, mlen);
echo trim(toStn(result));
// 输出:array(("hello tiny", "tiny"))

parseRegExpr(reg_expr, parse_text, parse_ctrls, r_str, result)

声明:function

按正则表达式匹配源字符串,并用指定内容替换匹配项。操作成功时将替换后的字符串写入 result

参数 类型 说明
reg_expr string 正则表达式,基本兼容 Perl 5 的正则语法
parse_text string 要匹配和替换的源字符串
parse_ctrls string 正则控制串;执行替换时必须包含 r
r_str string 替换内容,可使用 $0$99 等匹配项宏
result string 出参,保存替换后的字符串

返回:bool|string。操作成功返回 1;失败时返回错误原因。

示例

source := "abc123def";
ok := parseRegExpr("123", source, "r", "X", result);
echo ok, ":", result, "\n";
// 输出:1:abcXdef

pos(substr, s)

声明:function

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

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

返回:integer

示例

范例01

a := pos('a', 'thank you');
echo a; // 输出:3

范例02

echo pos('fg', 'adcfgvbhj');
// 输出:4

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

示例

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";
echo 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.

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

示例

a_text := "The first letter will be replaced by \'one\', but the second letter won't.";
a_from_text := "letter";
a_to_text := "one";
echo replaceText(a_text, a_from_text, a_to_text);
// 输出:The first one will be replaced by 'one', but the second one won't.n

reversebString(s)

声明:function

按字符顺序反转字符串,可处理非 MBCS 的原始字符串。

参数 类型 说明
s string 要反转的字符串

返回:string

示例

echo reversebString("abc");
// 输出:cba

reverseString(s)

声明:function

返回字符串S的反序

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

返回:string

示例

echo reverseString('abcde1234');
// 返回字符串:4321edcba

rightBStr(a_text, a_count)

声明:function

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

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

返回:string

示例

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

rightStr(text, num_chars)

声明:function

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

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

返回:string

示例

echo rightStr('abccccdddd', 2);
// 输出:’dd

sameFileName(s1, s2)

声明:function

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

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

返回:bool

示例

echo sameFileName("index.tsl", "test.tsl");
// 输出:0

sameText(s1, s2)

声明:function

返回字符串S1S2是否相等

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

返回:bool

示例

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

setChar(s, index, ch)

声明:function

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

参数 类型 说明
s string|binary 字符串或二进制流
index integer 字符位置
ch integer 0-255 之间的整数

返回:integer

示例

value := "abc";
result := setChar(value, 2, 90);
echo trim(toStn(array("value": value, "result": result)));
// 输出:array("value":"aZc","result":0)

setFormatLocalCode(code)

声明:function

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

参数 类型 说明
code integer 整型

返回:integer

示例

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

setLength(s, new_length)

声明:function

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

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

返回:integer

示例

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

setLikeFlag(flag)

声明:function

设置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); // 大小写无关+使 '.' 特殊字符匹配任意字符
echo s like reg;
// 输出:1

soundEx(a_text, alength)

声明:function

返回一个字符串,这个字符串是用来表明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);
echo trim(toStn(array(s1, s2, s3)));
// 输出:array("S500","S500","T230")

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

echo soundexCompare("sun", "sum");
// 输出:0

范例02

result := soundexCompare("sun", "fun");
echo result > 0;
// 输出:1,表示第一个发音码大于第二个发音码

范例03

echo soundexCompare("result", "return");
// 输出:-1

soundexInt(a_text, alength)

声明:function

返回表示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);
echo trim(toStn(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

echo soundexProc("sun", "sum");
// 输出:1

范例02

echo soundexProc("sun", "fun");
// 输出:0

范例03

echo soundexProc("transaction", "transact");
// 输出:1

soundexSimilar(a_text, a_other, a_length)

声明:function

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

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

返回:bool

示例

范例01

echo soundexSimilar("sun", "sum");
// 输出:1

范例02

echo soundexSimilar("sun", "fun");
// 输出:0

范例03

echo soundexSimilar("return", "result");
// 输出:0

soundexWord(a_text)

声明:function

把 SoundEx 发音特征字符串的前四个字符和长度编码为整数。

参数 类型 说明
a_text string SoundEx 发音特征字符串

返回:integer

示例

echo soundexWord(soundEx("Tinysoft", 4));
// 输出:24206

startsStr(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

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

startsText(a_sub_text, a_text)

声明:function

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

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

返回:bool

示例

text := 'abcdefg';
echo startsText('Abc', text);
// 输出:1
// 差异说明:对空字符串,Windows 判定为 1、Linux 为 0(如 startsText("", "A"));其它表现无差别。

str(x, s)

声明:function

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

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

返回:integer

示例

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

str2Array(value, aps)

声明:function

按分隔符把字符串拆成一维字符串数组。省略 aps 时使用分号。

参数 类型 说明
value string 要拆分的字符串
aps string 分隔符,省略时默认为分号

返回:array

示例

echo trim(toStn(str2Array("alpha,beta,gamma", ",")));
// 输出:array("alpha","beta","gamma")

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返回-1Linux中返回-3。

示例

a := strCmp("arr", "arry");
echo a; //
// 输出:-1

strToBase64(s)

声明:function

将字符串转换为BASE64编码并返回,该函数为本运行函数;可直接调用

参数 类型 说明
s string 字符串

返回:string

示例

echo strToBase64('a12'); // 输出:YTEy

strToBool(s)

声明:function

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

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

返回:bool

示例

echo strToBool("1");
// 输出:1

strToBoolDef(s, default)

声明:function

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

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

返回:bool

示例

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

strToCurr(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:float

示例

echo strToCurr("123.45");
// 输出:123.45

strToCurrDef(s, default)

声明:function

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

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

返回:currency

示例

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

strToFloat(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:float

示例

echo strToFloat("123.45");
// 输出:123.45

strToFloatDef(s, default)

声明:function

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

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

返回:real

示例

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

strToInt(s)

声明:function

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

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

返回:int

示例

echo strToInt("$FF");
// 输出:255

strToInt32(s)

声明:function

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

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

返回:int

示例

echo strToInt32("12345");
// 输出:12345

strToInt32Def(s, default)

声明:function

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

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

返回:integer

示例

范例01

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

范例02

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

范例03

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

strToInt64(s)

声明:function

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

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

返回:int64

示例

echo strToInt64("2147483648");
// 输出:2147483648

strToInt64Def(s, default)

声明:function

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

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

返回:int64

示例

范例01

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

范例02

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

范例03

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

strToIntDef(s, default)

声明:function

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

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

返回:integer

示例

范例01

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

范例02

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

范例03

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

strw(x, s)

声明:function

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

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

返回:integer

示例

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

stuffbString(a_text, a_start, alength, a_sub_text)

声明:function

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

参数 类型 说明
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";
echo stuffbString(atext, 1, 4, a_sub_text);
// 输出:HERE will be instead by 'HERE'

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

示例

atext := "Here will be instead by \'HERE\'";
a_sub_text := "HERE";
echo stuffString(atext, 1, 4, a_sub_text);
// 输出:HERE will be instead by HERE

sysEncodecryptStr(s, t)

声明:function

对字符串进行加密。

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

返回:string

示例

s := "Server=127.0.0.1;Database=tsBase;Uid=TinySoft;Pwd=admin;";
encode_s := sysEncodecryptStr(s, 0);
echo encode_s;
// 返回字符串:_ENCODE_3A364432572518291B2C02321C2C0233084C2D59385A3B482D10641755344722194C25417C28412F56056A0C78431364003D5C38553C5269

trim(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:string

示例

echo trim(" Hello! \r\n Tinysoft  ");
// 输出:
// "Hello!
// Tinysoft"

trimLeft(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:string

示例

echo trimLeft("Hello! \r\n Tinysoft  ");
// 输出:
// "Hello!
// Tinysoft  "

trimRight(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:string

示例

echo trimRight("Hello! \r\n Tinysoft  ");
// 输出:
// " Hello!
// Tinysoft "

tryStrToBool(s, value)

声明:function

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

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

返回:bool

示例

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

tryStrToCurr(s, value)

声明:function

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

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

返回:bool

示例

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

tryStrToFloat(s, value)

声明:function

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

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

返回:bool

示例

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

tryStrToInt(s, value)

声明:function

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

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

返回:bool

示例

范例01:转换成功

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

范例02:转换失败

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

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

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

tryStrToInt32(s, value)

声明:function

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

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

返回:bool

示例

范例01:转换成功

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

范例02:转换失败

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

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

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

tryStrToInt64(s, value)

声明:function

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

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

返回:bool

示例

范例01:转换成功

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

范例02:转换失败

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

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

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

unicodeEsc(s)

声明:function

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

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

返回:string

示例

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

unicodeEsc2(s)

声明:function

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

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

返回:string

示例

echo unicodeEsc2('2011 tinysoft天软科技');
// 输出:2011 tinysoft\u5929\u8F6F\u79D1\u6280

unicodetomultibyte(s, cp)

声明:function

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

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

返回:string

示例

unicode_text := multiByteToUnicode("ABC", 936);
echo unicodeToMultiByte(unicode_text, 936);
// 输出:ABC

unicodetoUtf8(s)

声明:function

Unicode串转为UTF8串。天软字符串前加L表示宽字节字符串,即Unicode串。

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

返回:string

示例

echo unicodetoUtf8(L"ABC");
// 输出:ABC

unicompress(_type, data[, compresslevel])

声明:function

统一压缩函数,对字符串或二进制进行压缩。_type 目前支持 zstd、zlib、lz4 三种类型,压缩级别在 zstd 和 zlib 模式下生效。

参数 类型 说明
_type string 压缩类型,目前支持 zstd、zlib、lz4 三种类型。
data string/binary 字符串或二进制类型,被压缩的数据。
compresslevel integer 可选。压缩级别,目前仅在 zstd 和 zlib 模式下生效。

返回:string

示例

data := "Tinysoft";
compressed := unicompress("zlib", data);
echo length(compressed) > 0, "\n";
// 输出:1

uniuncompress(_type, data[, srclen])

声明:function

统一解压函数。_type 目前支持 zstd、zlib、lz4 三种类型;srclen 表示原始数据大小,省略时自动识别,指定时会校验大小。

参数 类型 说明
_type string 解压类型,目前支持 zstd、zlib、lz4 三种类型。
data string/binary 字符串或二进制类型,被解压的数据。
srclen integer 可选。原始数据大小;省略时自动识别,指定时会校验大小。

返回:string

示例

compressed := unicompress("zlib", "Tinysoft");
echo uniuncompress("zlib", compressed) = "Tinysoft", "\n";
// 输出:1

unUnicodeEsc(s)

声明:function

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

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

返回:string

示例

echo unUnicodeEsc('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
// 输出:2011 tinysoft天软科技

unUnicodeEsc2(s)

声明:function

解码 \uxxxx 形式的 Unicode 转义序列,返回多字节字符串。

参数 类型 说明
s string 包含 Unicode 转义序列的字符串

返回:string

示例

echo unUnicodeEsc2("\\u0041");
// 输出:A

unUnicodeEsc2W(s)

声明:function

解码 \uxxxx 形式的 Unicode 转义序列,返回宽字节字符串。

参数 类型 说明
s string 包含 Unicode 转义序列的字符串

返回:string

示例

echo string(unUnicodeEsc2W("\\u0041"));
// 输出:A

unUnicodeEsCw(s)

声明:function

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

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

返回:string

示例

unicode_text := unUnicodeEsCw('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
echo ifwstring(unicode_text), ":", length(unicode_text);
// 输出:1:17

upperCase(s)

声明:function

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

参数 类型 说明
s string 字符串

返回:string

示例

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

utf8ToAnsi(s)

声明:function

UTF8串转为Ansi串。

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

返回:string

示例

utf8_text := ansiToUtf8('2011 tinysoft天软科技');
ansi_text := utf8ToAnsi(utf8_text);
echo ansi_text = '2011 tinysoft天软科技';
// 输出:1

utf8ToUnicode(s)

声明:function

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

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

返回:string

示例

utf8_text := ansiToUtf8('2011 tinysoft天软科技');
unicode_text := utf8ToUnicode(utf8_text);
echo ifwstring(unicode_text), ":", length(unicode_text);
// 输出:1:17

val(s, v, code)

声明:function

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

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

返回:any

示例

范例一:

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

范例二:

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

wideChr(value)

声明:function

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

参数 类型 说明
value integer 整数

返回:widestring

示例

a_value := wideChr(25105);
echo ifwstring(a_value), ":", length(a_value);
// 输出:1:1

wrapText(line, max_col)

声明:function

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

参数 类型 说明
line string 待自动分行的字符串
max_col integer 整型,每行最长字符

返回:string

示例

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