delphi TStringList 用法详解

delphi TStringList 用法详解。

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;
时间: 2024-10-19 02:05:01

delphi TStringList 用法详解的相关文章

Delphi TStringHelper用法详解

Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHelper,对操作字符串进一步带来更多的方法,使用这些方法才可以实现跨平台的代码. System.SysUtils.TStringHelper 大小写转换:-------------------------------------------------------------------------

Delphi IDHTTP用法详解

[delphi] view plaincopyprint? 一.IDHTTP的基本用法 IDHttp和WebBrowser一样,都可以实现抓取远端网页的功能,但是http方式更快.更节约资源,缺点是需要手动维护cook,连接等 IDHttp的创建,需要引入IDHttp procedure InitHttp(); begin http := TIdHTTP.Create(nil); http.ReadTimeout := 30000; http.OnRedirect := OnRedirect;

教程-Delphi中Spcomm使用属性及用法详解

Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选择 Delphi作为开发工具编制各种应用程序.但是,美中不足之处是 Delphi没有自带的串口通信控件,在它的帮助文档里也没有提及串口通信,这就给编制通信程序的开发人员带来许多不便. 目前,利用 Delphi实现串口通信的常用的方法有 3种:一是利用控件,如 MSCOMM控件和 SPCOMM控件:二

VC++中MessageBox的常见用法详解

消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合.         1.MessageBox("这是一个最简单的消息框!");         2.MessageBox("这是一个有标题的消息框!","这是标题");         3.MessageBox("这是一个确定 取消的消息框!","这是标题", MB_OKCANCEL );         4.Messa

js的offsetParent属性用法详解

js的offsetParent属性用法详解:此属性是javascript中较为常用的属性,对于它的良好掌握也是非常有必要的,下面就通过代码实例介绍一下它的用法,希望能够给需要的朋友带来一定的帮助.一.基本介绍:此属性可以返回距离指定元素最近的采用定位(position属性值为fixed.relative或者absolute)父级元素,如果父级元素中没有采用定位的元素,则返回body对象的引用.语法结构: obj.offsetParent 二.代码实例: <!DOCTYPE html> <

python处理word文件:win32com用法详解

目标:用python处理doc文件 方法:引入win32com模块 ************************************************************************** 一.安装 ************************************************************************** 首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了...) 下载地址:http

jQuery 事件用法详解

jQuery 事件用法详解 目录 简介 实现原理 事件操作 绑定事件 解除事件 触发事件 事件委托 事件操作进阶 阻止默认事件 阻止事件传播 阻止事件向后执行 命名空间 自定义事件 事件队列 jquery中文文档 简介 jquery 之所以成为最受欢迎的前端库,很大一部分是得益于它的事件具有良好的语义,优秀的兼容性,并且便于管理和扩展. 在这里我会介绍 jquery 事件的一些比较基础的用法. 实现原理 jquery 事件脱胎于浏览器的 addEventListener (W3) 和 attac

(转)ProgressDialog用法详解

转载自: ProgressDialog用法详解 ProgressDialog的基本用法 ProgressDialog为进度对话框.android手机自带的对话框显得比较单一,我们可以通过ProgressDialog来自己定义对话框中将要显示出什么东西. 首先看看progressDialog里面的方法 setProgressStyle:设置进度条风格,风格为圆形,旋转的.  setTitlt:设置标题  setMessage:设置提示信息:  setIcon:设置标题图标:  setIndeter

BigDecimal用法详解(转)

BigDecimal用法详解    http://www.cnblogs.com/linjiqin/p/3413894.html 一.简介Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal.BigDecimal所创建的是对象