Files
playbook/skills/tsl-api-reference/references/codegen/builtin/object/tstringlist.md
T

16 KiB

Object - TStringList 字符串列表

TStringList

声明:class

提供字符串集合存储、查找、排序和名称值管理能力的内置对象

create()

声明:function

创建 TStringList 实例

可见性:public

add(s)

声明:function

添加字符串

可见性:public

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

返回:integer

示例

obj:=CreateObject('TStringList');
obj.CommaText:='A=ABC,B=123,C=abc';
index:=obj.Add("X=DDD");
echo index;
sN:=obj.count;
r:=array();
for i:=0 to SN-1 do
begin
r[i,'n']:=obj.Names(i);
r[i,'v']:=obj.values(obj.Names(i));
end
return r;

addStrings(strings)

声明:function

将Strings里的字符串批量添加

可见性:public

参数 类型 说明
strings TStringList TStringList或者其他TStrings派生类型

返回:any

示例

bj:=CreateObject('TStringList');
obj.CommaText:='A=ABC,B=123,C=abc';
obj2:=CreateObject('TStringList');
obj2.CommaText:='A=DDD,G=666';
obj.AddStrings(obj2);
return obj.CommaText;

append(s)

声明:function

添加字符串,与Add相同,但不返回索引号

可见性:public

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

返回:any

assign(src)

声明:function

将内容复制成和src里的内容一样

可见性:public

参数 类型 说明
src TStringList TStringList或者其他TStrings派生类型,复制的源

返回:any

示例

obj:=CreateObject('TStringList');
obj.Delimiter:=";";
obj.DelimitedText:='A=DDD;G=666';
obj2:=CreateObject('TStringList');
obj2.Delimiter:=",";
obj2.Assign(obj);//复制
return array(obj2.Delimiter,obj2.DelimitedText);

clear()

声明:function

清除掉所有内容

可见性:public

返回:any

delete(index)

声明:function

删除指定索引

可见性:public

参数 类型 说明
index integer 整数类型,删除的索引号

返回:any

equals(src)

声明:function

比较两个内容是否相同

可见性:public

参数 类型 说明
src TStringList TStringList或者其他TStrings派生类型,比较的对象

返回:any

exChange(index1, index2)

声明:function

将两个位置的内容互相交换

可见性:public

参数 类型 说明
index1 integer 整数类型,互换的位置1
index2 integer 整数类型,互换的位置2

返回:any

示例

obj:=CreateObject('TStringList');
obj.CommaText:='A=ABC,B=123,C=abc';
obj.ExChange(0,2);
return obj.CommaText;

find(s, index)

声明:function

查找字符串。仅对已经排序好的TStringlist有效,未排序的请用IndexOf

可见性:public

参数 类型 说明
s string 字符串类型,查找的字符串
index integer 整数类型。返回查找到的索引号

返回:boolean

示例

obj:=CreateObject('TStringList');
obj.Sorted:=1;
obj.CommaText:='C=456.,D=abc,A=ABC,E=666,F=A123,B=123';
f:=obj.Find("E=666",Index);
if f then return Index;
else return '查找失败';

indexOf(s)

声明:function

返回字符串所在的索引号。查找与大小写敏感设置有关

可见性:public

参数 类型 说明
s string 字符串类型,查找的字符串

返回:integer

indexOfName(name)

声明:function

返回Name键值所在的索引号

可见性:public

参数 类型 说明
name string 字符串类型,查找的Name=Value中的Name所在的索引号

返回:integer

insert(index, s)

声明:function

插入字符串在指定索引号。仅未排序的场景适用,已排序的情况请用 Add

可见性:public

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

返回:any

loadFromFile(alias, file_name)

声明:function

从指定的文件中加载内容

可见性:public

参数 类型 说明
alias string 字符串类型,目录别名。如果有系统权限,可以为空字符串
file_name string 字符串类型,文件名,如果Alias为空,则为带全路径的文件名

返回:any

示例

LJ:="E:\\Test\\Case-save.txt";
obj:=CreateObject('TStringList');
obj.LoadFromFile('',LJ);
return obj.CommaText;

loadFromStream(stream)

声明:function

从指定的流中加载内容

可见性:public

参数 类型 说明
stream TStream 流类型,如文件流,内存流等

返回:any

示例

ws := new TMemoryStream();
ws.write("A=aaa",5);
ws.position:=0;
obj:=CreateObject('TStringList');
obj.LoadFromStream(ws);
return obj.CommaText;

move(cur_index, new_index)

声明:function

将指定位置的内容移动到新位置

可见性:public

参数 类型 说明
cur_index integer 整数类型,需要移动的内容的原始位置
new_index integer 整数类型,移动到的新位置索引

返回:any

names(index)

声明:function

取第Index个Name=Value串的Name串。Index从0开始

可见性:public

参数 类型 说明
index any index

返回:string

saveToFile(alias, file_name)

声明:function

将内容存贮到指定的文件中

可见性:public

参数 类型 说明
alias string 字符串类型,目录别名。如果有系统权限,可以为空字符串
file_name string 字符串类型,文件名,如果Alias为空,则为带全路径的文件名

返回:any

示例

pathname:= "E:\\Test\\Case-save.txt";
obj:=CreateObject('TStringList');
obj.Text:=TestStr1();
obj.SaveToFile('',pathName);

saveToStream(stream)

声明:function

将内容保存到指定的流中

可见性:public

参数 类型 说明
stream TStream 流类型,如文件流,内存流等

返回:any

示例

ws := new TMemoryStream();
obj:=CreateObject('TStringList');
obj.Text:= 'A a
B b
C c
D d
';
obj.SaveToStream(ws);
return ws.size; //返回20

setText(text)

声明:function

设置text的内容,与设置属性Text的操作相同

可见性:public

参数 类型 说明
text string 字符串类型,设置的内容

返回:any

sort()

声明:function

排序

可见性:public

返回:any

strings(index)

声明:function

取或者设置指定索引的字符串。下标从0开始

可见性:public

参数 类型 说明
index any index

返回:string

示例

obj:=CreateObject('TStringList');
obj.Delimiter:=";";
obj.DelimitedText:='A=ABC;B=123;C=456.;D=abc';
return obj.strings(1); //读

stringsW(index)

声明:function

取或者设置指定索引的字符串。功能同Strings,区别在于读取时StringsW返回的是宽字节字符串,而Strings返回的是多字节字符串

可见性:public

参数 类型 说明
index any index

返回:string

valueFromIndex(index)

声明:function

读取或写入第Index个串的Value值。Index下标从0开始

可见性:public

参数 类型 说明
index any index

返回:string

示例

obj:=CreateObject('TStringList');
obj.Delimiter:=";";
obj.DelimitedText:='A=ABC;B=123;C=456.;D=abc';
s0:=obj.ValueFromIndex(1);//读取第1个
obj.ValueFromIndex(1):="888"; //写入,即给指定位置的value重新赋值
return array(s0,obj.DelimitedText);

values(name)

声明:function

设置或者取得Name=Value模式串中指定的Name的Value值

可见性:public

参数 类型 说明
name any name

返回:string

示例

obj:=CreateObject('TStringList');
obj.Delimiter:=";";
obj.DelimitedText:='A=ABC;B=123;C=456.;D=abc';
SN:=obj.count;
r:=array();
for i:=0 to SN-1 do
begin
r[i,'name']:=obj.Names(i);//获取name值
r[i,'value']:=obj.values(obj.Names(i));//获取指定name对应的value值
end
return r;

Capacity

声明:property

容量,如果已知需要的字符串比较多,预先设置容量会有比较好的性能

可见性:public

类型:integer

访问:read/write

CaseSensitive

声明:property

大小写敏感,决定排序或者查找时是否大小写敏感。设置为真则表示大小写敏感,为假为大小写不敏感,默认为假

可见性:public

类型:boolean

访问:read/write

CommaText

声明:property

逗号分割串。将每个字符串用,分割连接起来。若字符串中间有逗号,则在字符串两头加"号(注,单引号无效),若字符串中还包含"号,如字符串' 3,a"bc',则用'"3,a""bc"'表达

可见性:public

类型:string

访问:read/write

CommaTextW

声明:property

功能同CommaText,区别是在读取时CommaTextW返回为宽字节字符串,而CommaText返回的是多字节字符串

可见性:public

类型:string

访问:read/write

Count

声明:property

获取字符串个数

可见性:public

类型:integer

访问:read

DelimitedText

声明:property

用分割符连接起来的单个字符串。连接符用Delimiter属性指定,默认为逗号。而当字符串中存在连接符时,用QuoteChar加在字符串两端。当QuoteChar为",且Delimiter为逗号时,DelimitedText的结果和CommaText一样

可见性:public

类型:string

访问:read/write

Delimiter

声明:property

DelmitedText所依赖的连接符,默认为逗号

可见性:public

类型:string

访问:read/write

Duplicates

声明:property

重复串时的行为控制,0:忽略重复串(默认值),1:允许重复串,2:重复串出错。排序时有效

可见性:public

类型:integer

访问:read/write

GetText

声明:property

获取Text的值

可见性:public

类型:string

访问:read

GetTextW

声明:property

获取Text的值,并以宽字符串类型返回

可见性:public

类型:string

访问:read

NameValueSeparator

声明:property

Name,Value之间的间隔符,默认为=

可见性:public

类型:string

访问:read/write

QuoteChar

声明:property

DelmitedText所依赖的引号符。一般在串中存在分割符时使用

可见性:public

类型:string

访问:read/write

Sorted

声明:property

是否已经排序,设置为真则进行排序

可见性:public

类型:boolean

访问:read/write

Text

声明:property

以回车换行分割每个字符串连接起来的单个串。如果存在包括回车换行的串,就会有混淆,如果要没有混淆,则需要用DelmitedText或者CommaText

可见性:public

类型:string

访问:read/write

TextW

声明:property

功能同Text,区别在于在读取时TextW返回为宽字节字符串,而Text返回的是多字节字符串

可见性:public

类型:string

访问:read/write