//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 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('999');
  List.Add('000');
  List.Add('zzz');
  ShowMessage(List.Text);  //000 999 aaa bbb ccc zzz
end;


转载于:https://www.cnblogs.com/zhengjuzhuan/archive/2010/04/27/1721911.html

TStringList 常用操作相关推荐

  1. TStringList 常用操作(转自万一)

    TStringList 常用操作(转自万一) 2008年11月27日 星期四 上午 11:14 搜TStringList,万一兄文章出现在第一个,哈,飞马过去把此文抢了过来 原文查看此处: TStri ...

  2. TensorFlow常用操作:代码示例

    1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...

  3. Ubuntu 常用操作

    Ubuntu常用操作 外观操作 修改应用icon图标 终端美化 内存管理 内存查询 分区管理 日志清理 操作执行 自动执行多条命令 外观操作 修改应用icon图标 在/usr/share/applic ...

  4. IOS沙盒Files目录说明和常用操作

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  5. 用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  6. python和R对dataframe的常用操作的差异:head、tail、shape、dim、nrow、ncol、descirbe、summary、str

    python和R对dataframe的常用操作的差异:head.tail.shape.dim.nrow.ncol.descirbe.summary.str # python df.head() # R ...

  7. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  8. JavaScript:对Object对象的一些常用操作总结

    JavaScript对Object对象的一些常用操作总结. 一.Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object.as ...

  9. ubuntu的学习教程(常用操作)

    摘要 最近在学习linux,把自己学习过程中遇到的常用操作以及一些有助于理解的内容记录下来.我主要用的是ubuntu系统 命令提示符 '~' 这个是指用户的家目录,用户分为root用户和普通用户,ro ...

最新文章

  1. hadoop 添加删除机器以及设置免密登录
  2. 裸奔的支付X聊天,你还敢用吗?
  3. 深入了解SAP S4 HANA Business Partner【中英文双语版】
  4. 甲亢php,甲亢还是甲低,真亢还是真低?
  5. BZOJ - 4520 K远点对
  6. 一道经典面试题 你是是否理解 if()没有大括号与有大括号区别吗?
  7. CS224N笔记(十):问答系统
  8. 蓝桥杯2018年第九届C/C++省赛B组第七题-螺旋折线
  9. samsung-smart app 开发
  10. Codeforces Round #569 (Div. 2)A. Alex and a Rhombus
  11. 鹿晗关晓彤公开恋情,是如何把微博服务器搞炸的
  12. 测试用例方法错误推测法
  13. 三步破解IntelliJ IDEA2017
  14. LaTeX Error: File `numcompress.sty‘ not found. 解决方案
  15. IDEA 全局搜索快捷键CTRL+SHIFT+F,不起作用
  16. Nginx 502 Bad Gateway 的错误的解决方案
  17. BCGP ribbon功能区点击切切属性页
  18. CocosCreator之KUOKUO带你做音乐可视化
  19. 小程序做电商的硬伤 “正规军”入驻 草根望尘莫及
  20. 信息论与编码:C语言实现lz78算法

热门文章

  1. leftjoin及多个leftjoin执行顺序
  2. 自定义PointViewPager依赖库
  3. 使用 EF Core 的 EnableRetryOnFailure 解决短暂的数据库连接失败问题
  4. Google App Engine给我们带来了什么?
  5. 初识vue 2.0(2):路由与组件
  6. AutoCAD WS API发布【转】
  7. overflow与min-width
  8. android在控制台签名apk
  9. 把用户体验设计放到底层逻辑架构设计的前面去做
  10. .net multi-threads synchronization : Use Lock effective