TStringList 常用方法与属性

  1. var
  2. List: TStringList;
  3. i: Integer;
  4. begin
  5. List := TStringList.Create;
  6. List.Add('Strings1'); {添加}
  7. List.Add('Strings2');
  8. List.Exchange(,); {置换}
  9. List.Insert(,'Strings3'); {插入}
  10. i := List.IndexOf('Strings1'); {第一次出现的位置}
  11. List.Sort; {排序}
  12. List.Sorted := True;      {指定排序}
  13. List.Count; {总数}
  14. List.Text; {文本集合}
  15. List.Delete(); {删除, 0是第一个数据}
  16. List.LoadFromFile('c:\tmp.txt');{打开}
  17. List.SaveToFile('c:\tmp.txt'); {保存}
  18. List.Clear; {清空}
  19. List.Free; {释放}
  20. end;

读入字符串

  1. var
  2. List: TStringList;
  3. begin
  4. List := TStringList.Create;
  5. List.CommaText := 'aaa,bbb,ccc,ddd';
  6. {相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd';}
  7.  
  8. ShowMessage(IntToStr(List.Count)); {}
  9. ShowMessage(List[]); {aaa}
  10.  
  11. List.Free;
  12. end;

置换分隔符

  1. var
  2. List: TStringList;
  3. begin
  4. List := TStringList.Create;
  5. List.Delimiter := '|';
  6. List.DelimitedText := 'aaa|bbb|ccc|ddd';
  7.  
  8. ShowMessage(IntToStr(List.Count)); {}
  9. ShowMessage(List[]); {aaa}
  10.  
  11. List.Free;
  12. end;

类似的哈希表操作法

  1. var
  2. List: TStringList;
  3. begin
  4. List := TStringList.Create;
  5.  
  6. List.Add('aaa=111');
  7. List.Add('bbb=222');
  8. List.Add('ccc=333');
  9. List.Add('ddd=444');
  10.  
  11. ShowMessage(List.Names[]); {bbb}
  12. ShowMessage(List.ValueFromIndex[]); {}
  13. ShowMessage(List.Values['bbb']); {}
  14.  
  15. {ValueFromIndex 可以赋值:}
  16. List.ValueFromIndex[] := '';
  17. ShowMessage(List[]); {bbb=2}
  18.  
  19. {可以通过 Values 赋值:}
  20. List.Values['bbb'] := '';
  21. ShowMessage(List[]); {bbb=22}
  22.  
  23. List.Free;
  24. end;

避免重复值

  1. var
  2. List: TStringList;
  3. begin
  4. List := TStringList.Create;
  5.  
  6. List.Add('aaa');
  7.  
  8. List.Sorted := True; {需要先指定排序}
  9. List.Duplicates := dupIgnore; {如有重复值则放弃}
  10.  
  11. List.Add('aaa');
  12.  
  13. ShowMessage(List.Text); //aaa
  14.  
  15. {Duplicates 3个可选值:}
  16. {dupIgnore: 放弃;}
  17. {dupAccept: 结束;}
  18. {dupError: 提示错误.}
  19.  
  20. List.Free;
  21. end;

排序与倒排序

  1. {排序函数}
  2. function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;
  3. begin
  4. Result := -AnsiCompareText(List[Index1], List[Index2]);
  5. end;
  6.  
  7. procedure TForm1.Button1Click(Sender: TObject);
  8. var
  9. List: TStringList;
  10. begin
  11. List := TStringList.Create;
  12.  
  13. List.Add('bbb');
  14. List.Add('ccc');
  15. List.Add('aaa');
  16.  
  17. {未排序}
  18. ShowMessage(List.Text); {bbb ccc aaa}
  19.  
  20. //排序
  21. List.Sort;
  22. ShowMessage(List.Text); //aaa bbb ccc
  23.  
  24. {倒排序}
  25. List.CustomSort(DescCompareStrings); {调用排序函数}
  26. ShowMessage(List.Text); {ccc bbb aaa}
  27.  
  28. {假如:}
  29. List.Sorted := True;
  30. List.Add('');
  31. List.Add('');
  32. List.Add('zzz');
  33. ShowMessage(List.Text); {000 999 aaa bbb ccc zzz}
  34. end;

【delphi】TStringList类常用属性方法详解的更多相关文章

  1. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

  2. ES6 类(Class)基本用法和静态属性+方法详解

    原文地址:http://blog.csdn.net/pcaxb/article/details/53759637 ES6 类(Class)基本用法和静态属性+方法详解 JavaScript语言的传统方 ...

  3. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  4. Java AtomicInteger类的使用方法详解_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Samp ...

  5. Java File 类的使用方法详解

    Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看 ...

  6. Java File 类的使用方法详解(转)

    转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...

  7. 部分常用Express方法详解

    app.set(name, value) 分配给name一个value,并将name作为app settings table的一个属性. 使用app.set('foo', true) 相当于调用 ap ...

  8. jQuery常用事件方法详解

    目录 jQuery事件 ready(fn)|$(function(){}) jQuery.on() jQuery.click jQuery.data() jQuery.submit() jQuery事 ...

  9. Yii-数据模型- rules类验证器方法详解

    public function rules(){ return array( array('project_id, type_id, status_id, owner_id, requester_id ...

随机推荐

  1. 阿里云安装jdk,tomcat,maven,svn,git,nginx

    1. 首先通过xftp等工具上传安装包 2. 配置目录 cd usr mkdir java cd java mkdir jdk mkdir tomcatmkdir maven 3. 安装jdk 3.1 ...

  2. 【CAS单点登录视频教程】 第06集【完】 -- Cas认证 学习 票据认证FormsAuthentication

    目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAuthenticati ...

  3. numpy二分查找

    a = np.array([1, 2, 2, 3]) print(np.searchsorted(a, 0)) # 0 print(np.searchsorted(a, 1)) # 0 print(n ...

  4. 【svn】解析subversion的使用

    目录结构: contents structure [-] 安装客户端 安装服务端 创建仓库 启动仓库 创建客户端与仓库取得联系 使用svn服务 SVN密码管理 SVN的仓库布局和常规命令 分支.合并和 ...

  5. iOS UTI

    UTI全拼Uniform Type Identifier,直接翻译过来就是统一类型标示符. 这个东西可以实现的功能就是设备之间或者app之间的文件传输. 有兴趣的领个支付宝红包再走, ^_^ 全套相关 ...

  6. canOpenURL: failed for URL: "weixin://app/wx 问题解决方式

    canOpenURL: failed for URL: “weixin://app/wx 问题解决方式: 在info.plist里面添加以下内容: <key>LSApplicationQu ...

  7. mysql单机多实例

    在数据库服务器上,可以架构多个Mysql服务器,进行单机多实例的读写分离: 可以通过mysqld_multi来进行多实例的管理,mysqld_multi是用perl写的脚本,原理是通过mysql_ad ...

  8. 【转】标准C++类std::string的内存共享和Copy-On-Write技术

    1.             概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功 ...

  9. ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)

    手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息.将主要信息优先显示,也使显示效果更加简洁美观.遇到类似的需求,我们使用最多的就是 ListView ,而假设每次点击一个 Item 都 ...

  10. 乙醇的webdriver实用指南java版本

    启动浏览器 关闭浏览器 浏览器最大化 设置浏览器大小 访问链接 打印当前页面的title及url 前进和后退 简单的对象定位 定位一组对象 层级定位 操作测试对象 send keys模拟按键输入 处理 ...