Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12876132
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: 数据库开发技术

2011-05-06 12:44:15

  1. var
  2. List: TStringList;
  3. i: Integer;
  4. begin
  5. List := TStringList.Create;
  6. List.Add('Strings1'); {添加}
  7. List.Add('Strings2');
  8. List.Exchange(0,1); {置换}
  9. List.Insert(0,'Strings3'); {插入}
  10. i := List.IndexOf('Strings1'); {第一次出现的位置}
  11. List.Sort; {排序}
  12. List.Sorted := True; {指定排序}
  13. List.Count; {总数}
  14. List.Text; {文本集合}
  15. List.Delete(0); {删除, 0是第一个数据}
  16. List.LoadFromFile('c:\tmp.txt');{打开}
  17. List.SaveToFile('c:\tmp.txt'); {保存}
  18. List.Clear; {清空}
  19. List.Free; {释放}
  20. end;
  21. --------------------------------------------------------------------------------

  22. //读入字符串

  23. var
  24. List: TStringList;
  25. begin
  26. List := TStringList.Create;
  27. List.CommaText := 'aaa,bbb,ccc,ddd';
  28. //相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd';


  29. ShowMessage(IntToStr(List.Count)); //4

  30. ShowMessage(List.Strings[0]); //aaa 跟下面句差不多

  31. ShowMessage(List[0]); //aaa


  32. List.Free;
  33. end;
  34. --------------------------------------------------------------------------------

  35. //置换分隔符

  36. var
  37. List: TStringList;
  38. begin
  39. List := TStringList.Create;
  40. List.Delimiter := '|';
  41. List.DelimitedText := 'aaa|bbb|ccc|ddd';

  42. ShowMessage(IntToStr(List.Count)); //4

  43. ShowMessage(List[0]); //aaa


  44. List.Free;
  45. end;
  46. --------------------------------------------------------------------------------

  47. //类似的哈希表操作法

  48. var
  49. List: TStringList;
  50. begin
  51. List := TStringList.Create;

  52. List.Add('aaa=111');
  53. List.Add('bbb=222');
  54. List.Add('ccc=333');
  55. List.Add('ddd=444');

  56. ShowMessage(List.Names[1]); //bbb

  57. ShowMessage(List.ValueFromIndex[1]); //222

  58. ShowMessage(List.Values['bbb']); //222


  59. //ValueFromIndex 可以赋值:

  60. List.ValueFromIndex[1] := '2';
  61. ShowMessage(List[1]); //bbb=2


  62. //可以通过 Values 赋值:

  63. List.Values['bbb'] := '22';
  64. ShowMessage(List[1]); //bbb=22


  65. List.Free;
  66. end;
  67. --------------------------------------------------------------------------------

  68. //避免重复值

  69. var
  70. List: TStringList;
  71. begin
  72. List := TStringList.Create;

  73. List.Add('aaa');

  74. List.Sorted := True; //需要先指定排序

  75. List.Duplicates := dupIgnore; //如有重复值则放弃


  76. List.Add('aaa');

  77. ShowMessage(List.Text); //aaa


  78. //Duplicates 有3个可选值:

  79. //dupIgnore: 放弃;

  80. //dupAccept: 结束;

  81. //dupError: 提示错误.


  82. List.Free;
  83. end;
  84. --------------------------------------------------------------------------------

  85. //排序与倒排序

  86. {排序函数}
  87. function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer;
  88. begin
  89. Result := -AnsiCompareText(List[Index1], List[Index2]);
  90. end;

  91. procedure TForm1.Button1Click(Sender: TObject);
  92. var
  93. List: TStringList;
  94. begin
  95. List := TStringList.Create;

  96. List.Add('bbb');
  97. List.Add('ccc');
  98. List.Add('aaa');

  99. //未排序

  100. ShowMessage(List.Text); //bbb ccc aaa


  101. //排序

  102. List.Sort;
  103. ShowMessage(List.Text); //aaa bbb ccc


  104. //倒排序

  105. List.CustomSort(DescCompareStrings); //调用排序函数

  106. ShowMessage(List.Text); //ccc bbb aaa


  107. //假如:

  108. List.Sorted := True;
  109. List.Add('999');
  110. List.Add('000');
  111. List.Add('zzz');
  112. ShowMessage(List.Text); //000 999 aaa bbb ccc zzz

  113. end;
阅读(2703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~