//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');
List.Add('eee=');
List.Add('fff'); 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 ShowMessage(List.Names[4]); //eee
ShowMessage(List.ValueFromIndex[4]); //
ShowMessage(List.Values['eee']); // ShowMessage(List.Names[5]); //
ShowMessage(List.ValueFromIndex[5]); //
ShowMessage(List.Values['fff']); // 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;

最新文章

  1. OriDomi – 像折叠纸张一样折叠 DOM 元素
  2. 懂DOS终于发挥了一点作用:phoenix bios密码破解
  3. PHPCMS V9 学习总结
  4. POJ 2182
  5. day2练习题
  6. iOS国际化时遇到的错误:read failed: the data couldn't be read because it isn't in the correct format.
  7. 策略模式——MFC样例
  8. SSH整合之_架构的历史序列图
  9. Angular 学习笔记 ( CDK - Portal )
  10. 有两个序列a,b,大小都为n,序列元素的值是任意整数,无序。
  11. linux下连接windows的远程桌面
  12. callback理解
  13. JS数据结构库
  14. EF 排序扩展
  15. MATLAB程序控制结构
  16. 剑指offer十九之顺时针打印矩阵
  17. smarty 模板标签
  18. 系统之锹sysdig:Linux服务器监控和排障利器
  19. String比较相等的问题探索
  20. 转:xdebug在linux下的安装教程

热门文章

  1. 第二天:PowerShell别名
  2. Python 分解质因数
  3. Jmeter-【JSON Extractor】-响应结果中二级key取值
  4. bootstrapValidator--表单校验
  5. Alibaba Cluster Data 开源:270GB 数据揭秘你不知道的阿里巴巴数据中心
  6. 云栖专辑|阿里开发者们的第二个感悟:PG大V德哥的使命感与开放心态
  7. thinkphp读取配置
  8. 最近工作中用到的Linux指定 PS Kill netstat解释
  9. bzoj1025题解
  10. APIO 2017 商旅 洛谷3778