TStringList:字符串列表

2017-12-29 19:30:54来源:CSDN作者:xiezuozhen人点击

分享
第七城市th7cn

TStringList:字符串列表  


声明:type TStringList;

描述:TStringList是一个公用的类类型,它对于许多列表处理非常有用。在字符串列表中的项目可以被插入、删除和排序。

列表的建立有三种方式:1、一个字符串接一个字符串加入;2、加载一个以逗号分隔的大字符串;3、载入一个文本文件。

TStringList是从TStrings中派生出来的,你也可以使用TStrings,但不建议这样做,因为它是不完全的–即有一些方法是抽象的。而TStringList实现了这些抽象方法(Clear, Delete 和Insert)。我们会覆盖TStringList的主要属性和方法,包含那些派生自TStings的。

Count属性:返回列表中字符串的数量。

Capacity属性:设置或取得字符串列表的当前容量。为了性能方面的原因,需要自行管理这个容量。

Strings属性:取得或更新在列表中给定索引的字符串(第一个列表项目的索引为0)。注意:Strings属性是默认的属性,这就意味着使用时可以不用指定Strings名称,如:myName:=names.Strings[4]相当于myName:=names[4]。

Text属性:以一个大字符串的形式设置或取得列表内容。这个大字符串的每个字符串以换行回车符结束。对于从一个可以保存多行文本的可视化对象(如Memo)中导入数据而言非常有用。

CommaText属性:以一个大字符串的形式设置或取得列表内容。这个大字符串的每个项目字符串以逗号分隔。对于从一个电子表格导出的文本文件中导入数据是非常用用的。当取得数据时,如果一个字符串中包含了内嵌的空格时,它将被双引号括起来。

DelimitedText属性:以一个大字符串的形式设置或取得列表内容。这个大字符串的每个项目字符串以分隔号Delimiter分隔(默认为逗号)。如果字符串包含内嵌的空格,必须用QuoteChar符号括起来(默认是双引号)。

QuoteChar属性:当使用DelimitedText时,用什么符号将有空格的字符串括起来。

Delimiter属性:当使用DelimitedText时,用于分隔字符串的符号。

Names属性:在字符串列表中的字符串可以被当作一对”名称/数值”对待。每个字符串必须是不能含有空格,必须包含一个”=”等于号(或者是当前的NameValueSeparator变量值)。这是个非常有用的概念,参见Value属性、ValueFromIndex属性和IndexOfName方法。

Value属性:当使用”名称/数值”对时,返回给定名称的数值。

ValueFromIndex属性:当使用”名称/数值”对时,返回给定字符串索引(索引开始于0)的数值。

CaseSensitive属性:当设为True时,Delphi对待字符串是以大小写混合的形式,用于执行某种操作,如排序Sort。

Duplicates属性:这个属性可以是下列TDuplicates枚举值中的其中一个:

dupIgnore:忽略(丢弃)重复值

dupAccept:允许重复值

dupError:如果有重复值则抛出异常

在加入字符串之前,必须先将其设为某个期望的值。

Sorted属性:如果是True,所有加入的字符串将会进行排序;如果是False,后加入的处于字符串列表尾部。参见Sort方法。

Objects属性:如果存在,则返回给定索引的字符串相关联的对象。

Add方法:将给定的字符串加入到列表中,返回分配的索引值(开始于0)。

Append方法:如Add方法相似,但不返回索引值。

Insert方法:在给定的索引位置插入一个字符串。位置0的话,将强制在开始处插入。

Delete方法:删除定索引的字符串。

Clear方法:删除列表中的所有字符串。

Move方法:将字符串从一个索引位置移动到另一个索引位置,周围的字符串适当地移动。

Exchange方法:根据索引值,交换列表中的两个字符串。

IndexOf方法:取得给定字符串第一个匹配的字符串的索引位置,如果没有找到则返回-1。

IndexOfName方法:取得给定字符串第一个匹配的”名称/数值”对字符串的索引位置,如果没有找到则返回-1。

Find方法:与IndexOf相同,但用于排序的字符串列表。

Sort方法:当Sorted为False时,使用这个方法强制进行排序。

AddStrings方法:将另一个字符串列表中的字符串加入到本个字符串列表。

Assign方法:用另一个列表内容替换当前列表。

LoadFromFile方法:非常有用。从一个文本文件加载字符串列表。每一个文本行(以换行回车符CRLF结束)成为一个项目字符串。

SaveToFile方法:将字符串列表保存为文本文件。

 {简单例子} var   animals : TStringList;            // 定义字符串列表变量   i       : Integer; begin   // 创建对象   animals := TStringList.Create;    // 加入几个字符串   animals.Add('Cat');   animals.Add('Mouse');   animals.Add('Giraffe');    // 显示   for i := 0 to animals.Count-1 do     ShowMessage(animals[i]);  // animals[i] 相当于 animals.Strings[i] end; 

程序运行结果:

Cat

Mouse

Giraffe

 {使用"名称/数值"对} var   names  : TStringList;            // 定义字符串列表变量
ageStr : String;
i: Integer; begin
//创建成对象 names := TStringList.Create;
// 加入一些字符串
names.CommaText := 'Neil=45, Brian=63, Jim=22';
// 查找Brian的年龄
ageStr := names.Values['Brian'];
//显示这个值
ShowMessage('Brians age = '+ageStr);
// 显示所有名字与相应的年龄
for i := 0 to names.Count-1 do
begin
ShowMessage(names.Names[i]+' is '+names.ValueFromIndex[i]);
end;
end;

程序运行结果:

Brians age is 63

Neil is 45

Brian is 63

Jim is 22

 {使用DelimitedText, Delimiter and QuoteChar}
var cars : TStringList;
//定义一个字符串列表变量
i: Integer; begin
// 创建对象
cars := TStringList.Create;
// 加入几种汽车 - 使用DelimitedText属性
// with overriden control variables
cars.Delimiter := ' ';
// 每个项目用空格分隔
cars.QuoteChar := '|';
//每个项目用"|"括起来
cars.DelimitedText := '|Honda Jazz| |Ford Mondeo| |Jaguar "E-type"|';
// 显示这些汽车
for i := 0 to cars.Count-1 do
ShowMessage(cars[i]);
// cars[i]相当于 cars.Strings[i]
end;

程序运行结果:

Honda Jazz

Ford Mondeo

Jaguar “E-type”

第七城市th7cn

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台