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

 12人阅读 评论(0) 收藏 举报
  1. //TStringList 常用方法与属性:  
  2. var  
  3.   List: TStringList;  
  4.   i: Integer;  
  5. begin  
  6.   List := TStringList.Create;  
  7.   List.Add('Strings1');           {添加}  
  8.   List.Add('Strings2');  
  9.   List.Exchange(0,1);             {置换}  
  10.   List.Insert(0,'Strings3');      {插入}  
  11.   i := List.IndexOf('Strings1');  {第一次出现的位置}  
  12.   List.Sort;                      {排序}  
  13.   List.Sorted := True;   {指定排序}  
  14.   List.Count;                     {总数}  
  15.   List.Text;                      {文本集合}  
  16.   List.Delete(0);                 {删除, 0是第一个数据}  
  17.   List.LoadFromFile('c:\tmp.txt');{打开}  
  18.   List.SaveToFile('c:\tmp.txt');  {保存}  
  19.   List.Clear;                     {清空}  
  20.   List.Free;                      {释放}  
  21. end;  
  22.   
  23.   
  24. //读入字符串  
  25. var  
  26.   List: TStringList;  
  27. begin  
  28.   List := TStringList.Create;  
  29.   List.CommaText := 'aaa,bbb,ccc,ddd';  
  30.   //相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd';  
  31.   
  32.   ShowMessage(IntToStr(List.Count));  //4  
  33.   ShowMessage(List[0]);  //aaa  
  34.   
  35.   List.Free;  
  36. end;  
  37.   
  38.   
  39. //置换分隔符  
  40. var  
  41.   List: TStringList;  
  42. begin  
  43.   List := TStringList.Create;  
  44.   List.Delimiter := '|';  
  45.   List.DelimitedText := 'aaa|bbb|ccc|ddd';  
  46.   
  47.   ShowMessage(IntToStr(List.Count));  //4  
  48.   ShowMessage(List[0]);  //aaa  
  49.   
  50.   List.Free;  
  51. end;  
  52.   
  53.   
  54.   
  55. //类似的哈希表操作法  
  56. var  
  57.   List: TStringList;  
  58. begin  
  59.   List := TStringList.Create;  
  60.   
  61.   List.Add('aaa=111');  
  62.   List.Add('bbb=222');  
  63.   List.Add('ccc=333');  
  64.   List.Add('ddd=444');  
  65.   
  66.   ShowMessage(List.Names[1]);  //bbb  
  67.   ShowMessage(List.ValueFromIndex[1]);  //222  
  68.   ShowMessage(List.Values['bbb']);  //222  
  69.   
  70.   //ValueFromIndex 可以赋值:  
  71.   List.ValueFromIndex[1] := '2';  
  72.   ShowMessage(List[1]);  //bbb=2  
  73.   
  74.   //可以通过 Values 赋值:  
  75.   List.Values['bbb'] := '22';  
  76.   ShowMessage(List[1]);  //bbb=22  
  77.   
  78.   List.Free;  
  79. end;  
  80.   
  81.   
  82. //避免重复值  
  83. var  
  84.   List: TStringList;  
  85. begin  
  86.   List := TStringList.Create;  
  87.   
  88.   List.Add('aaa');  
  89.   
  90.   List.Sorted := True;  //需要先指定排序  
  91.   List.Duplicates := dupIgnore;  //如有重复值则放弃  
  92.   
  93.   List.Add('aaa');  
  94.   
  95.   ShowMessage(List.Text);  //aaa  
  96.   
  97.   //Duplicates 有3个可选值:  
  98.   //dupIgnore: 放弃;  
  99.   //dupAccept: 结束;  
  100.   //dupError: 提示错误.  
  101.   
  102.   List.Free;  
  103. end;  
  104.   
  105.   
  106.   
  107. //排序与倒排序  
  108. {排序函数}  
  109. function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;  
  110. begin  
  111.   Result := -AnsiCompareText(List[Index1], List[Index2]);  
  112. end;  
  113.   
  114. procedure TForm1.Button1Click(Sender: TObject);  
  115. var  
  116.   List: TStringList;  
  117. begin  
  118.   List := TStringList.Create;  
  119.   
  120.   List.Add('bbb');  
  121.   List.Add('ccc');  
  122.   List.Add('aaa');  
  123.   
  124.   //未排序  
  125.   ShowMessage(List.Text);  //bbb ccc aaa  
  126.   
  127.   //排序  
  128.   List.Sort;  
  129.   ShowMessage(List.Text);  //aaa bbb ccc  
  130.   
  131.   //倒排序  
  132.   List.CustomSort(DescCompareStrings);  //调用排序函数  
  133.   ShowMessage(List.Text);  //ccc bbb aaa  
  134.   
  135.   //假如:  
  136.   List.Sorted := True;  
  137.   List.Add('999');  
  138.   List.Add('000');  
  139.   List.Add('zzz');  
  140.   ShowMessage(List.Text);  //000 999 aaa bbb ccc zzz  
  141. end;  
posted @ 2014-01-06 14:40  孤舟残月浅笑嫣然  阅读(261)  评论(0编辑  收藏  举报