2010年10月9日星期六

Delphi中TStringList类常用属性方法详解(转)

摘自:http://www.mysjtu.com/page/M0/S210/210908.html

1 //TStringList 常用方法与属性:
2  var
3 List: TStringList;
4 i: Integer;
5 begin
6 List := TStringList.Create;
7 List.Add("Strings1"); {添加}
8 List.Add("Strings2");
9 List.Exchange(0,1); {置换}
10 List.Insert(0,"Strings3"); {插入}
11 i := List.IndexOf("Strings1"); {第一次出现的位置}
12 List.Sort; {排序}
13 List.Sorted := True; {指定排序}
14 List.Count; {总数}
15 List.Text; {文本集合}
16 List.Delete(0); {删除, 0是第一个数据}
17 List.LoadFromFile("c:\tmp.txt");{打开}
18 List.SaveToFile("c:\tmp.txt"); {保存}
19 List.Clear; {清空}
20 List.Free; {释放}
21 end;
22
23 //读入字符串
24 var
25 List: TStringList;
26 begin
27 List := TStringList.Create;
28 List.CommaText := "aaa,bbb,ccc,ddd";
29 //相当于: List.Text := "aaa" + #13#10 + "bbb" + #13#10" + "ccc" + "#13#10" + "ddd";
30
31 ShowMessage(IntToStr(List.Count)); //4
32 ShowMessage(List[0]); //aaa
33
34 List.Free;
35 end;
36
37 //置换分隔符
38 var
39 List: TStringList;
40 begin
41 List := TStringList.Create;
42 List.Delimiter := "|";
43 List.DelimitedText := "aaa|bbb|ccc|ddd";
44
45 ShowMessage(IntToStr(List.Count)); //4
46 ShowMessage(List[0]); //aaa
47
48 List.Free;
49 end;
50
51
52 //类似的哈希表操作法
53 var
54 List: TStringList;
55 begin
56 List := TStringList.Create;
57
58 List.Add("aaa=111");
59 List.Add("bbb=222");
60 List.Add("ccc=333");
61 List.Add("ddd=444");
62
63 ShowMessage(List.Names[1]); //bbb
64 ShowMessage(List.ValueFromIndex[1]); //222
65 ShowMessage(List.Values["bbb"]); //222
66
67 //ValueFromIndex 可以赋值:
68 List.ValueFromIndex[1] := "2";
69 ShowMessage(List[1]); //bbb=2
70
71 //可以通过 Values 赋值:
72 List.Values["bbb"] := "22";
73 ShowMessage(List[1]); //bbb=22
74
75 List.Free;
76 end;
77
78 //避免重复值
79 var
80 List: TStringList;
81 begin
82 List := TStringList.Create;
83
84 List.Add("aaa");
85
86 List.Sorted := True; //需要先指定排序
87 List.Duplicates := dupIgnore; //如有重复值则放弃
88
89 List.Add("aaa");
90
91 ShowMessage(List.Text); //aaa
92
93 //Duplicates 有3个可选值:
94 //dupIgnore: 放弃;
95 //dupAccept: 结束;
96 //dupError: 提示错误.
97
98 List.Free;
99 end;
100
101 //排序与倒排序
102 {排序函数}
103 function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;
104 begin
105 Result := -AnsiCompareText(List[Index1], List[Index2]);
106 end;
107
108 procedure TForm1.Button1Click(Sender: TObject);
109 var
110 List: TStringList;
111 begin
112 List := TStringList.Create;
113
114 List.Add("bbb");
115 List.Add("ccc");
116 List.Add("aaa");
117
118 //未排序
119 ShowMessage(List.Text); //bbb ccc aaa
120
121 //排序
122 List.Sort;
123 ShowMessage(List.Text); //aaa bbb ccc
124
125 //倒排序
126 List.CustomSort(DescCompareStrings); //调用排序函数
127 ShowMessage(List.Text); //ccc bbb aaa
128
129 //假如:
130 List.Sorted := True;
131 List.Add("999");
132 List.Add("000");
133 List.Add("zzz");
134 ShowMessage(List.Text); //000 999 aaa bbb ccc zzz
135 end;
136

没有评论: