delphi TStringList 用法详解

2022-10-14,,

//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;

 

原文链接:https://blog.csdn.net/sunylat/article/details/24886695

《delphi TStringList 用法详解.doc》

下载本文的Word格式文档,以方便收藏与打印。