欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

delphi TStringList 用法详解

程序员文章站 2022-03-10 13:12:36
//TStringList 常用方法与属性 : 原文链接:https://blog.csdn.net/sunylat/article/details/24886695 ......

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