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  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/cgczxc/p/4128998.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值