1. //TStringList 常用方法与属性:
  2. var
  3. List: TStringList;
  4. i: Integer;
  5. begin
  6. List := TStringList.Create;
  7. List.Add('Strings1'); {添加}
  8. List.Add('Strings2');
  9. List.Exchange(0,1); {置换}
  10. List.Insert(0,'Strings3'); {插入}
  11. i := List.IndexOf('Strings1'); {第一次出现的位置}
  12. List.Sort; {排序}
  13. List.Sorted := True; {指定排序}
  14. List.Count; {总数}
  15. List.Text; {文本集合}
  16. List.Delete(0); {删除, 0是第一个数据}
  17. List.LoadFromFile('c:\tmp.txt');{打开}
  18. List.SaveToFile('c:\tmp.txt'); {保存}
  19. List.Clear; {清空}
  20. List.Free; {释放}
  21. end;
  22. --------------------------------------------------------------------------------
  23.  
  24. //读入字符串
  25. var
  26. List: TStringList;
  27. begin
  28. List := TStringList.Create;
  29. List.CommaText := 'aaa,bbb,ccc,ddd';
  30. //相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd';
  31.  
  32. ShowMessage(IntToStr(List.Count)); //4
  33. ShowMessage(List[0]); //aaa
  34.  
  35. List.Free;
  36. end;
  37. --------------------------------------------------------------------------------
  38.  
  39. //置换分隔符
  40. var
  41. List: TStringList;
  42. begin
  43. List := TStringList.Create;
  44. List.Delimiter := '|';
  45. List.DelimitedText := 'aaa|bbb|ccc|ddd';
  46.  
  47. ShowMessage(IntToStr(List.Count)); //4
  48. ShowMessage(List[0]); //aaa
  49.  
  50. List.Free;
  51. end;
  52. --------------------------------------------------------------------------------
  53.  
  54. //类似的哈希表操作法
  55. var
  56. List: TStringList;
  57. begin
  58. List := TStringList.Create;
  59.  
  60. List.Add('aaa=111');
  61. List.Add('bbb=222');
  62. List.Add('ccc=333');
  63. List.Add('ddd=444');
  64. List.Add('eee=');
  65. List.Add('fff');
  66.  
  67. ShowMessage(List.Names[1]); //bbb
  68. ShowMessage(List.ValueFromIndex[1]); //222
  69. ShowMessage(List.Values['bbb']); //222
  70.  
  71. //ValueFromIndex 可以赋值:
  72. List.ValueFromIndex[1] := '2';
  73. ShowMessage(List[1]); //bbb=2
  74.  
  75. //可以通过 Values 赋值:
  76. List.Values['bbb'] := '22';
  77. ShowMessage(List[1]); //bbb=22
  78.  
  79. ShowMessage(List.Names[4]); //eee
  80. ShowMessage(List.ValueFromIndex[4]); //
  81. ShowMessage(List.Values['eee']); //
  82.  
  83. ShowMessage(List.Names[5]); //
  84. ShowMessage(List.ValueFromIndex[5]); //
  85. ShowMessage(List.Values['fff']); //
  86.  
  87. List.Free;
  88. end;
  89. --------------------------------------------------------------------------------
  90.  
  91. //避免重复值
  92. var
  93. List: TStringList;
  94. begin
  95. List := TStringList.Create;
  96.  
  97. List.Add('aaa');
  98.  
  99. List.Sorted := True; //需要先指定排序
  100. List.Duplicates := dupIgnore; //如有重复值则放弃
  101.  
  102. List.Add('aaa');
  103.  
  104. ShowMessage(List.Text); //aaa
  105.  
  106. //Duplicates 有3个可选值:
  107. //dupIgnore: 放弃;
  108. //dupAccept: 结束;
  109. //dupError: 提示错误.
  110.  
  111. List.Free;
  112. end;
  113. --------------------------------------------------------------------------------
  114.  
  115. //排序与倒排序
  116. {排序函数}
  117. function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;
  118. begin
  119. Result := -AnsiCompareText(List[Index1], List[Index2]);
  120. end;
  121.  
  122. procedure TForm1.Button1Click(Sender: TObject);
  123. var
  124. List: TStringList;
  125. begin
  126. List := TStringList.Create;
  127.  
  128. List.Add('bbb');
  129. List.Add('ccc');
  130. List.Add('aaa');
  131.  
  132. {未排序}
  133. ShowMessage(List.Text); //bbb ccc aaa
  134.  
  135. {排序}
  136. List.Sort;
  137. ShowMessage(List.Text); //aaa bbb ccc
  138.  
  139. {倒排序}
  140. List.CustomSort(DescCompareStrings); //调用排序函数
  141. ShowMessage(List.Text); //ccc bbb aaa
  142.  
  143. //假如:
  144. List.Sorted := True;
  145. List.Add('999');
  146. List.Add('000');
  147. List.Add('zzz');
  148. ShowMessage(List.Text); //000 999 aaa bbb ccc zzz
  149. end;

TStringList常用操作的更多相关文章

  1. TStringList 常用操作

    //TStringList 常用方法与属性: var   List: TStringList;   i: Integer; begin   List := TStringList.Create;   ...

  2. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  3. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  4. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  5. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  6. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  7. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  8. python 异常处理、文件常用操作

    异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm

  9. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

随机推荐

  1. struts2验证器

    1. Struts2 的验证(note6,struts2-8) 1). 验证分为两种: > 声明式验证* >> 对哪个 Action 或 Model 的那个字段进行验证 >&g ...

  2. 笔记51 Mybatis快速入门(二)

    Mybatis的CRUD 1.修改配置文件Category.xml,提供CRUD对应的sql语句. <?xml version="1.0" encoding="UT ...

  3. 笔记32 SpringMVC中使用静态资源、处理中文乱码

    一.静态资源的使用 在WebConfig.java中有如下代码段 @Override // 配置静态资源处理 public void configureDefaultServletHandling(D ...

  4. linux服务器创建docker

    关于Docker在Linux服务器中的安装以及使用1 安装: yum install docker 2 启动: systemctl start docker.service 3.加入开机启动: sys ...

  5. 一个简易h5涉及的ps技巧

    事实证明,很长时间不做,是会忘掉的呀,的呀,呀,啊~ 1.合并图层 CTRL+E合并多个图层 2.切片 3.导出 文件-------导出------存储为web所用格式-------->> ...

  6. CSS——标签显示模式(display)

    非洲黑人: 皮肤内黑色素含量高,以吸收阳光中的紫外线,保护皮肤内部结构免遭损害,头发象羊毛一样卷曲,使每根卷发周围都有许多空隙,空隙充满空气,卷发有隔热作用. 欧洲白人: 生活寒带或着是说常年温度较低 ...

  7. delphi里为程序任务栏右键菜单添加自定义菜单

    本文讲解的是为自身程序的任务栏右键菜单里添加自己定义的菜单的方法: delphi添加任务栏右键菜单 procedure TForm1.FormCreate(Sender: TObject); var ...

  8. 2019/11/12 CSP模拟赛&&考前小总结

    写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...

  9. hdu多校第五场1005 (hdu6628) permutation 1 排列/康托展开/暴力

    题意: 定义一个排列的差分为后一项减前一项之差构成的数列,求对于n个数的排列,差分的字典序第k小的那个,n<=20,k<=1e4. 题解: 暴力打表找一遍规律,会发现,对于n个数的排列,如 ...

  10. POJ3436:ACM Computer Factory-最大流

    目录 目录 思路: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 目录 题意:传送门  原题目描述在最下面.  题目真难读懂 有\(n\)台机器,每台机器有\(p\)个部分,每台机 ...