var
<wbr><wbr></wbr></wbr>
List: TStringList;
<wbr><wbr></wbr></wbr>
i:
Integer
;
begin
<wbr><wbr></wbr></wbr>
List := TStringList
.
Create;
<wbr><wbr></wbr></wbr>
List
.
Add(
'Strings1'
);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{添加}
<wbr><wbr></wbr></wbr>
List
.
Add(
'Strings2'
);
<wbr><wbr></wbr></wbr>
List
.
Exchange(
0
,
1
);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{置换}
<wbr><wbr></wbr></wbr>
List
.
Insert(
0
,
'Strings3'
);<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
{插入}
<wbr><wbr></wbr></wbr>
i := List
.
IndexOf(
'Strings1'
);<wbr></wbr>
{第一次出现的位置}
<wbr><wbr></wbr></wbr>
List
.
Sort;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{排序}
<wbr><wbr></wbr></wbr>
List
.
Sorted :=
True
;<wbr><wbr></wbr></wbr>
{指定排序}
<wbr><wbr></wbr></wbr>
List
.
Count;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{总数}
<wbr><wbr></wbr></wbr>
List
.
Text;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{文本集合}
<wbr><wbr></wbr></wbr>
List
.
Delete(
0
);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{删除, 0是第一个数据}
<wbr><wbr></wbr></wbr>
List
.
LoadFromFile(
'c:\tmp.txt'
);
{打开}
<wbr><wbr></wbr></wbr>
List
.
SaveToFile(
'c:\tmp.txt'
);<wbr></wbr>
{保存}
<wbr><wbr></wbr></wbr>
List
.
Clear;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{清空}
<wbr><wbr></wbr></wbr>
List
.
Free;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
{释放}
end
;
<wbr></wbr>
<wbr></wbr>
//读入字符串
var
<wbr><wbr></wbr></wbr>
List: TStringList;
begin
<wbr><wbr></wbr></wbr>
List := TStringList
.
Create;
<wbr><wbr></wbr></wbr>
List
.
CommaText :=
'aaa,bbb,ccc,ddd'
;
<wbr><wbr></wbr></wbr>
//相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd';
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
ShowMessage(IntToStr(List
.
Count));<wbr></wbr>
//4
<wbr><wbr></wbr></wbr>
ShowMessage(List[
0
]);<wbr></wbr>
//aaa
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Free;
end
;
<wbr></wbr>
<wbr></wbr>
//置换分隔符
var
<wbr><wbr></wbr></wbr>
List: TStringList;
begin
<wbr><wbr></wbr></wbr>
List := TStringList
.
Create;
<wbr><wbr></wbr></wbr>
List
.
Delimiter :=
'|'
;
<wbr><wbr></wbr></wbr>
List
.
DelimitedText :=
'aaa|bbb|ccc|ddd'
;
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
ShowMessage(IntToStr(List
.
Count));<wbr></wbr>
//4
<wbr><wbr></wbr></wbr>
ShowMessage(List[
0
]);<wbr></wbr>
//aaa
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Free;
end
;
//类似的哈希表操作法
var
<wbr><wbr></wbr></wbr>
List: TStringList;
begin
<wbr><wbr></wbr></wbr>
List := TStringList
.
Create;
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Add(
'aaa=111'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'bbb=222'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'ccc=333'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'ddd=444'
);
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Names[
1
]);<wbr></wbr>
//bbb
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
ValueFromIndex[
1
]);<wbr></wbr>
//222
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Values[
'bbb'
]);<wbr></wbr>
//222
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//ValueFromIndex 可以赋值:
<wbr><wbr></wbr></wbr>
List
.
ValueFromIndex[
1
] :=
'2'
;
<wbr><wbr></wbr></wbr>
ShowMessage(List[
1
]);<wbr></wbr>
//bbb=2
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//可以通过 Values 赋值:
<wbr><wbr></wbr></wbr>
List
.
Values[
'bbb'
] :=
'22'
;
<wbr><wbr></wbr></wbr>
ShowMessage(List[
1
]);<wbr></wbr>
//bbb=22
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Free;
end
;
<wbr></wbr>
<wbr></wbr>
//避免重复值
var
<wbr><wbr></wbr></wbr>
List: TStringList;
begin
<wbr><wbr></wbr></wbr>
List := TStringList
.
Create;
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Add(
'aaa'
);
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Sorted :=
True
;<wbr></wbr>
//需要先指定排序
<wbr><wbr></wbr></wbr>
List
.
Duplicates := dupIgnore;<wbr></wbr>
//如有重复值则放弃
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Add(
'aaa'
);
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Text);<wbr></wbr>
//aaa
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//Duplicates 有3个可选值:
<wbr><wbr></wbr></wbr>
//dupIgnore: 放弃;
<wbr><wbr></wbr></wbr>
//dupAccept: 结束;
<wbr><wbr></wbr></wbr>
//dupError: 提示错误.
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Free;
end
;
//排序与倒排序
{排序函数}
function
DescCompareStrings(List: TStringList; Index1, Index2:
Integer
):
Integer
;
begin
<wbr><wbr></wbr></wbr>
Result := -AnsiCompareText(List[Index1], List[Index2]);
end
;
<wbr></wbr>
<wbr></wbr>
procedure
TForm1
.
Button1Click(Sender: TObject);
var
<wbr><wbr></wbr></wbr>
List: TStringList;
begin
<wbr><wbr></wbr></wbr>
List := TStringList
.
Create;
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
List
.
Add(
'bbb'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'ccc'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'aaa'
);
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//未排序
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Text);<wbr></wbr>
//bbb ccc aaa
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//排序
<wbr><wbr></wbr></wbr>
List
.
Sort;
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Text);<wbr></wbr>
//aaa bbb ccc
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//倒排序
<wbr><wbr></wbr></wbr>
List
.
CustomSort(DescCompareStrings);<wbr></wbr>
//调用排序函数
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Text);<wbr></wbr>
//ccc bbb aaa
<wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr>
//假如:
<wbr><wbr></wbr></wbr>
List
.
Sorted :=
True
;
<wbr><wbr></wbr></wbr>
List
.
Add(
'999'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'000'
);
<wbr><wbr></wbr></wbr>
List
.
Add(
'zzz'
);
<wbr><wbr></wbr></wbr>
ShowMessage(List
.
Text);<wbr></wbr>
//000 999 aaa bbb ccc zzz
end
;