TStringList:字符串列表

TStringList:字符串列表  

2009-04-13 15:18:53|  分类: delphi |  标签: |举报 |字号 订阅

声明: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"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值