Delphi TStringList的用法文档格式.docx
《Delphi TStringList的用法文档格式.docx》由会员分享,可在线阅读,更多相关《Delphi TStringList的用法文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
Strings3'
{插入}
i:
=List.IndexOf('
{第一次出现的位置}
List.Sort;
{排序}
List.Sorted:
=True;
{指定排序}
List.Count;
{总数}
List.Text;
{文本集合}
List.Delete(0);
{删除,0是第一个数据}
List.LoadFromFile('
c:
\tmp.txt'
{打开}
List.SaveToFile('
{保存}
List.Clear;
{清空}
List.Free;
{释放}
end;
//读入字符串
List.CommaText:
='
aaa,bbb,ccc,ddd'
;
//相当于:
List.Text:
aaa'
+#13#10+'
bbb'
+#13#10'
+'
ccc'
#13#10'
ddd'
ShowMessage(IntToStr(List.Count));
//4
ShowMessage(List[0]);
//aaa
相当于
//置换分隔符
List.Delimiter:
|'
List.DelimitedText:
aaa|bbb|ccc|ddd'
//类似的哈希表操作法
aaa=111'
bbb=222'
ccc=333'
ddd=444'
ShowMessage(List.Names[1]);
//bbb
ShowMessage(List.ValueFromIndex[1]);
//222
ShowMessage(List.Values['
]);
//ValueFromIndex可以赋值:
List.ValueFromIndex[1]:
2'
ShowMessage(List[1]);
//bbb=2
//可以通过Values赋值:
List.Values['
]:
22'
//bbb=22
//避免重复值
//需要先指定排序
List.Duplicates:
=dupIgnore;
//如有重复值则放弃
ShowMessage(List.Text);
//Duplicates有3个可选值:
//dupIgnore:
放弃;
//dupAccept:
结束;
//dupError:
提示错误.
//排序与倒排序
{排序函数}
functionDescCompareStrings(List:
Index1,Index2:
Integer):
Result:
=-AnsiCompareText(List[Index1],List[Index2]);
procedureTForm1.Button1Click(Sender:
TObject);
//未排序
//bbbcccaaa
//排序
//aaabbbccc
//倒排序
List.CustomSort(DescCompareStrings);
//调用排序函数
//cccbbbaaa
//假如
999'
000'
zzz'
//000999aaabbbccczzz
现在来讨论它的一些高级的用法。
先把要讨论的几个属性列出来:
1、CommaText
2、Delimiter&
DelimitedText
3、Names&
Values&
ValueFromIndex
先看第一个:
CommaText。
怎么用呢?
用代码说话:
const
constr:
String='
strs:
TStrings;
i:
Integer;
strs.CommaText:
=constr;
fori:
=0toStrs.Count-1do
ShowMessage(Strs);
执行了这段代码后,可以看到ShowMessage显示出来的分别是:
aaabbbcccddd。
也就是说,strs.CommaText:
=constr这一句的作用,就是把一个字符串以'
'
为分割符,分段添加到TStrings中。
那么如果不是以'
来分割,又该怎么做呢?
现在看第二个例子。
使用Delimiter和DelimitedText。
aaa\bbb\ccc\ddd'
strs.Delimiter:
\'
strs.DelimitedText:
可以看到,显示的效果和第一个例子是一模一样的。
解释一下:
Delimiter为分隔符,默认为:
'
。
DelimitedText就是按Delimiter为分隔符的一个串,得到赋值后回把这个字符串按Delimiter的字符添加到TStrings中。
说到这里,有想起一个属性,QuoteChar。
其默认值为:
"
(不包括单引号)
有何用呢?
看例子:
aaa"
\"
bbb"
ccc"
ddd"
显示出来的仍然是aaabbbcccddd。
为什么不是:
"
呢?
再来看一个例子:
|aaa|\|bbb|\|ccc|\|ddd|'
strs.QuoteChar:
显示出来的又是aaabbbcccddd。
对比一下,应该不难明白吧?
这个就不多说了,用得也不多。
但是还要多说一句,当Delimiter为:
而QuoteChar为:
时,DelimitedText和CommaText是同等的。
最后要说的三个是:
Names&
ValueFromIndex。
看看下面的代码:
0=aaa,1=bbb,2=ccc,3=ddd'
=0tostrs.Count-1do
ShowMessage(strs.Names);
ShowMessage(strs.Values[strs.Names]);
ShowMessage(strs.ValueFromIndex);
通过这个例子不难看出:
这个时候strs中的内容是:
0=aaa
1=bbb
2=ccc
3=ddd
而Names中则是:
1
2
3
在Values中则是:
aaa
bbb
ccc
ddd
===============================================================================================
TStringList和TList
在本章中,我们只讨论TStringList,而将TList放在下一章中再详细讨论
第一章、TStringList
在这里我们要讲解TStringList,但同时有一个相关类是不能忽略的,那就是TStrings类
TStringList是由TStrings派生而来,而Tstrings是一个抽象类,他继承于Tpersistent类