在 TstringList里,那些String被一行一行地储存。TstringList.Text返回全部的String。如果第一、二、三行分别 是/'aa/'、/'bb/'、/'cc/' 的话,那么Text 返回的是“/'aa/'+#13#10+/'bb/'+#13#10+/'cc/'+#13#10” (不包括双引号)。所有的String都被TstringList用回车和换行符(#13#10)连接了起来。如果依次向Text赋值的话,Text就会 被自动地分割成行储存在TstringList 里。这充分地体现出TstringList的一个很实用的价值:它能让我们逐行处理String。假如我们要操作第4行,只需操作 TstringList[3]。相信大家会问,TstringList明明是一个类,为什么能当数组那样子用呢?其实,我们在写 TstringList[3]的时候,就是在写TstringList.Strings[3]。Strings是TstringList的一个缺省属性。 数组性的缺省属性就是这样子使用的。
如果大家在编写类的时候要用到这么一个功能的话,可以参照如下方法:
Count:返回List里面的总行数;
Add(S) 方法向TstringList的末尾添加一行String;
Insert(Index; string);
Insert方法向TstringList插入一行字符串。在Insert里,我们可以自由地选择字符串插入的位置。参数S 代表要插入的字符串的内容,Index 代表要插入的位置。
Delete(index) 方法删除某行字符串,我们同样可以自由地选择删除任意一行字符串。参数Index代表要删除的那一行字符串的位置。
IndexOf(S)查找某一字符串在TstringList里的位置。参数S代表要查找的字符串。如果TstringList里不存在S的话,则返回-1。
procedure Move(CurIndex, NewIndex: Integer);Move方法能把一行字符串抽出来并插入到另一个指定的位置上。参数CurIndex代表要移动的字符串的位置,NewIndex 代表字符串新的位置。
procedure Exchange(Index1, Index2: Integer);Exchange方法则能将随便两行字符串交换。参数Index1和Index2代表两行需要交换的字符串的位置。
procedure LoadFromFile(const FileName: string);
procedure SaveToFile(const FileName: string);
TstringList 的LoadFromFile和SaveToFile两个方法,使得我们对文本文件的操作变得非常方便。参数FileName 代表目标文本文件的文件名。