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

 
  
  
    
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

 

你可能感兴趣的:(String)