TStringList 常用方法与属性

var
List: TStringList;
i: Integer;
begin
List := TStringList.Create;
List.Add('Strings1'); {添加}
List.Add('Strings2');
List.Exchange(,); {置换}
List.Insert(,'Strings3'); {插入}
i := List.IndexOf('Strings1'); {第一次出现的位置}
List.Sort; {排序}
List.Sorted := True;      {指定排序}
List.Count; {总数}
List.Text; {文本集合}
List.Delete(); {删除, 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)); {}
ShowMessage(List[]); {aaa} List.Free;
end;

置换分隔符

var
List: TStringList;
begin
List := TStringList.Create;
List.Delimiter := '|';
List.DelimitedText := 'aaa|bbb|ccc|ddd'; ShowMessage(IntToStr(List.Count)); {}
ShowMessage(List[]); {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[]); {bbb}
ShowMessage(List.ValueFromIndex[]); {}
ShowMessage(List.Values['bbb']); {} {ValueFromIndex 可以赋值:}
List.ValueFromIndex[] := '';
ShowMessage(List[]); {bbb=2} {可以通过 Values 赋值:}
List.Values['bbb'] := '';
ShowMessage(List[]); {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 TForm1.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('');
List.Add('');
List.Add('zzz');
ShowMessage(List.Text); {000 999 aaa bbb ccc zzz}
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. iOS中判断网络是否联网

    #import "AppDelegate.h" #import "ViewController.h" #import "Reachability.h& ...

  2. Struts2常见配置(草稿)

    Struts2框架配置文件加载的顺序(了解加载配置文件的顺序,重点掌握struts.xml配置文件) 1.Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该 ...

  3. 查看linux设备文件系统类型的方法

    网络上找来找去没有找到简单的,最后翻了鸟哥的书就找到了,鸟哥的书还是真的有用心写的. /proc/filesystems 当前被内核支持的文件系统类型列表文件 /etc/filesystems 系统已 ...

  4. golang项目结构

    一.概述 golang更新了环境变量,导致整个goproject的结构改变: [root@node175 goproject]# tree -L . ├── bin │   └── demo ├── ...

  5. MongoDB----逻辑与物理存储结构

    基本的操作 一.常用的命令和基础知识 1.进入MongoDB shell 首先我们进入到MongoDB所在目录执行 cd /work/app/mongodb/bin/ #启动 ./mongo 为了方便 ...

  6. cucumber_java从入门到精通(5)使用maven创建cucumber_java项目

    cucumber java从入门到精通(5)使用maven创建cucumber java项目 前几节我们已经在感性上认识了cucumber的基本功能以及BDD测试的基本流程,我们渐进重构,一步一步的向 ...

  7. pyspark dataframe 常用操作

    spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能.当然主要对类SQL的支持.   在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选.合并,重新入库.   首先加 ...

  8. MySQL自成一派的查询提示

    [查询提示] MySQL中可以给select语句各种提示,比如告诉它“查询的结果集特别大,请直接用磁盘临时表”,“请让这条select优先执行” .... [查询提示:与结果集相关] 与结果集相关的查 ...

  9. tomcat 8.0 进程没有全部杀死

    The web application [FileIO_new_interface] created a ThreadLocal with key of type [java.lang.ThreadL ...

  10. WPF 4 Ribbon 开发 之 快捷工具栏(Quick Access Toolbar)

    转自 http://www.cnblogs.com/gnielee/archive/2010/05/10/wpf4-ribbon-quick-access-toolbar.html 在Office 2 ...