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