Delphi - TStringList 用法详解
<p>delphi TStringList 用法详解</p><p>//TStringList 常用方法与属性 :<br>var<br> List: TStringList;<br> i: Integer;<br>begin<br> List := TStringList.Create;<br> List.Add('Strings1'); {添加}<br> List.Add('Strings2');<br> List.Exchange(0,1); {置换}<br> List.Insert(0,'Strings3'); {插入}<br> i := List.IndexOf('Strings1'); {第一次出现的位置}<br> List.Sort; {排序}<br> List.Sorted := True; {指定排序}<br> List.Count; {总数}<br> List.Text; {文本集合}<br> List.Delete(0); {删除, 0是第一个数据}<br> List.LoadFromFile('c:/tmp.txt');{打开}<br> List.SaveToFile('c:/tmp.txt'); {保存}<br> List.Clear; {清空}<br> List.Free; {释放}<br>end;</p>
<p> </p>
<hr>
<p><br><br>//读入字符串<br>var<br> List: TStringList;<br>begin<br> List := TStringList.Create;<br> List.CommaText := 'aaa,bbb,ccc,ddd';<br>//相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd';<br><br> ShowMessage(IntToStr(List.Count)); //4<br> ShowMessage(List); //aaa<br><br> List.Free;<br>end;</p>
<hr>
<p><br><br>//置换分隔符<br>var<br> List: TStringList;<br>begin<br> List := TStringList.Create;<br> List.Delimiter := '|';<br> List.DelimitedText := 'aaa|bbb|ccc|ddd';<br><br> ShowMessage(IntToStr(List.Count)); //4<br> ShowMessage(List); //aaa<br><br> List.Free;<br>end;</p>
<hr>
<p><br><br>//类似的哈希表操作法<br>var<br> List: TStringList;<br>begin<br> List := TStringList.Create;<br><br> List.Add('aaa=111');<br> List.Add('bbb=222');<br> List.Add('ccc=333');<br> List.Add('ddd=444');<br><br> ShowMessage(List.Names); //bbb<br> ShowMessage(List.ValueFromIndex); //222<br> ShowMessage(List.Values['bbb']); //222<br><br>//ValueFromIndex 可以赋值:<br> List.ValueFromIndex := '2';<br> ShowMessage(List); //bbb=2<br><br>//可以通过 Values 赋值:<br> List.Values['bbb'] := '22';<br> ShowMessage(List); //bbb=22<br><br> List.Free;<br>end;</p>
<p> </p>
<hr>
<p>//避免重复值<br>var<br> List: TStringList;<br>begin<br> List := TStringList.Create;<br><br> List.Add('aaa');<br><br> List.Sorted := True; //需要先指定排序<br> List.Duplicates := dupIgnore; //如有重复值则放弃<br><br> List.Add('aaa');<br><br> ShowMessage(List.Text); //aaa<br><br>//Duplicates 有3个可选值:<br>//dupIgnore: 放弃;<br>//dupAccept: 结束;<br>//dupError: 提示错误.<br><br> List.Free;<br>end;</p>
<p> </p>
<hr>
<p><br><br>//排序与倒排序<br>{排序函数}<br>function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;<br>begin<br> Result := -AnsiCompareText(List, List);<br>end;<br><br>procedure TForm 1.Button1Click(Sender: TObject);<br>var<br> List: TStringList;<br>begin<br> List := TStringList.Create;<br><br> List.Add('bbb');<br> List.Add('ccc');<br> List.Add('aaa');<br><br>//未排序<br> ShowMessage(List.Text); //bbb ccc aaa<br><br>//排序<br> List.Sort;<br> ShowMessage(List.Text); //aaa bbb ccc<br><br>//倒排序<br> List.CustomSort(DescCompareStrings); //调用排序函数<br> ShowMessage(List.Text); //ccc bbb aaa<br><br>//假如:<br> List.Sorted := True;<br> List.Add('999');<br> List.Add('000');<br> List.Add('zzz');<br> ShowMessage(List.Text); //000 999 aaa bbb ccc zzz<br>end;</p><br><br>
来源:https://www.cnblogs.com/sunylat/p/13925993.html
頁:
[1]