zoukankan      html  css  js  c++  java
  • 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;
     
  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/lrl45/p/5135404.html
Copyright © 2011-2022 走看看