zoukankan      html  css  js  c++  java
  • 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: mp.txt');{打开}  
    18.   List.SaveToFile('c: mp.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;  
  • 相关阅读:
    二进制状态压缩对应 bool 数组中的常用操作
    [Acwing 327] 玉米田 题解
    [CF Contest] Web of Lies 题解
    ArchLinux安装vscode
    ArchLinux安装并且配置fcitx5
    【日常训练】取数问题
    Oracle sql 转 Hive sql一些语法问题
    Oracle中的connect by 转成hive的 lateral view explode
    Hive之分析函数
    数据仓库之拉链表设计
  • 原文地址:https://www.cnblogs.com/qingsong/p/3507164.html
Copyright © 2011-2022 走看看