delphi TStringList 用法详解

//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 TForm 1.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;

出处: http://blog.163.com/you888@188/blog/static/67239619201472365642633/