TStringList 常用方法与属性

 

<script type="text/javascript"></script> <script class="blogstory"></script>
TStringList 常用方法与属性:
var
List: TStringList;
i: Integer;
begin
List := TStringList.Create;
List.Add(&apos;Strings1&apos;); {添加}
List.Add(&apos;Strings2&apos;);
List.Exchange(0,1); {置换}
List.Insert(0,&apos;Strings3&apos;); {插入}
i := List.IndexOf(&apos;Strings1&apos;); {第一次出现的位置}
List.Sort; {排序}
List.Sorted := True; {指定排序}
List.Count; {总数}
List.Text; {文本集合}
List.Delete(0); {删除, 0是第一个数据}
List.LoadFromFile(&apos;c:/tmp.txt&apos;);{打开}
List.SaveToFile(&apos;c:/tmp.txt&apos;); {保存}
List.Clear; {清空}
List.Free; {释放}
end;



//读入字符串

var
List: TStringList;
begin
List := TStringList.Create;
List.CommaText := &apos;aaa,bbb,ccc,ddd&apos;;
//相当于: List.Text := &apos;aaa&apos; + #13#10 + &apos;bbb&apos; + #13#10&apos; + &apos;ccc&apos; + &apos;#13#10&apos; + &apos;ddd&apos;;

ShowMessage(IntToStr(List.Count)); //4
ShowMessage(List[0]); //aaa

List.Free;
end;



//置换分隔符

var
List: TStringList;
begin
List := TStringList.Create;
List.Delimiter := &apos;|&apos;;
List.DelimitedText := &apos;aaa|bbb|ccc|ddd&apos;;

ShowMessage(IntToStr(List.Count)); //4
ShowMessage(List[0]); //aaa

List.Free;
end;



//类似的哈希表操作法

var
List: TStringList;
begin
List := TStringList.Create;

List.Add(&apos;aaa=111&apos;);
List.Add(&apos;bbb=222&apos;);
List.Add(&apos;ccc=333&apos;);
List.Add(&apos;ddd=444&apos;);

ShowMessage(List.Names[1]); //bbb
ShowMessage(List.ValueFromIndex[1]); //222
ShowMessage(List.Values[&apos;bbb&apos;]); //222

//ValueFromIndex 可以赋值:
List.ValueFromIndex[1] := &apos;2&apos;;
ShowMessage(List[1]); //bbb=2

//可以通过 Values 赋值:
List.Values[&apos;bbb&apos;] := &apos;22&apos;;
ShowMessage(List[1]); //bbb=22

List.Free;
end;



//避免重复值

var
List: TStringList;
begin
List := TStringList.Create;

List.Add(&apos;aaa&apos;);

List.Sorted := True; //需要先指定排序
List.Duplicates := dupIgnore; //如有重复值则放弃

List.Add(&apos;aaa&apos;);

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(&apos;bbb&apos;);
List.Add(&apos;ccc&apos;);
List.Add(&apos;aaa&apos;);

//未排序
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(&apos;999&apos;);
List.Add(&apos;000&apos;);
List.Add(&apos;zzz&apos;);
ShowMessage(List.Text); //000 999 aaa bbb ccc zzz
end;



//待续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值