1. 先把要讨论的几个属性列出来:
  2. 1、CommaText
  3. 2、Delimiter & DelimitedText
  4. 3、Names & Values & ValueFromIndex
  5. 先看第一个:CommaText。怎么用呢?用代码说话:
  6. const
  7. constr :String = 'aaa,bbb,ccc,ddd';
  8. var
  9. strs :TStrings;
  10. i :Integer;
  11. begin
  12. strs := TStringList.Create;
  13. strs.CommaText := constr;
  14. for i := 0 to Strs.Count-1 do
  15. ShowMessage(Strs[i]);
  16. end;
  17. 执行了这段代码后,可以看到ShowMessage显示出来的分别是:aaa bbb ccc ddd。
  18. 也就是说,strs.CommaText := constr这一句的作用,就是把一个字符串以'',''为分割符,分段添加到TStrings中。
  19. 那么如果不是以'',''来分割,又该怎么做呢?现在看第二个例子。使用Delimiter和DelimitedText。
  20. const
  21. constr :String = 'aaa\bbb\ccc\ddd';
  22. var
  23. strs :TStrings;
  24. i :Integer;
  25. begin
  26. strs := TStringList.Create;
  27. strs.Delimiter := '\';
  28. strs.DelimitedText := constr;
  29. for i := 0 to Strs.Count-1 do
  30. ShowMessage(Strs[i]);
  31. end;
  32. 可以看到, 显示的效果和第一个例子是一模一样的。解释一下:
  33. Delimiter为分隔符,默认为:'',''。DelimitedText就是按Delimiter为分隔符的一个串,得到赋值后会把这个字符串按Delimiter的字符添加到TStrings中。
  34. 说到这里,有想起一个属性,QuoteChar。其默认值为:''"''(不包括单引号)
  35. 有何用呢?看例子:
  36. const
  37. constr :String = '"aaa"\"bbb"\"ccc"\"ddd"';
  38. var
  39. strs :TStrings;
  40. i :Integer;
  41. begin
  42. strs := TStringList.Create;
  43. strs.Delimiter := '\';
  44. strs.DelimitedText := constr;
  45. for i := 0 to Strs.Count-1 do
  46. ShowMessage(Strs[i]);
  47. end;
  48. 显示出来的仍然是aaa bbb ccc ddd。为什么不是:"aaa" "bbb" "ccc" "ddd"呢?
  49. 再来看一个例子:
  50. const
  51. constr :String = '|aaa|\|bbb|\|ccc|\|ddd|';
  52. var
  53. strs :TStrings;
  54. i :Integer;
  55. begin
  56. strs := TStringList.Create;
  57. strs.Delimiter := '\';
  58. strs.QuoteChar := '|';
  59. strs.DelimitedText := constr;
  60. for i := 0 to Strs.Count-1 do
  61. ShowMessage(Strs[i]);
  62. end;
  63. 显示出来的又是aaa bbb ccc ddd。对比一下,应该不难明白吧?这个就不多说了,用得也不多。
  64. 但是还要多说一句,当Delimiter为:'',''而QuoteChar为:''"''时,DelimitedText和CommaText是同等的。
  65. 最后要说的三个是:Names & Values & ValueFromIndex。
  66. 看看下面的代码:
  67. const
  68. constr :String = '0=aaa,1=bbb,2=ccc,3=ddd';
  69. var
  70. strs :TStrings;
  71. i :Integer;
  72. begin
  73. strs := TStringList.Create;
  74. strs.CommaText := constr;
  75. for i := 0 to strs.Count-1 do
  76. begin
  77. ShowMessage(strs.Names[i]);
  78. ShowMessage(strs.Values[strs.Names[i]]);
  79. ShowMessage(strs.ValueFromIndex[i]);
  80. end;
  81. end;
  82. 通过这个例子不难看出:
  83. 这个时候strs中的内容是:
  84. 0=aaa
  85. 1=bbb
  86. 2=ccc
  87. 3=ddd
  88. 而Names中则是:
  89. 0
  90. 1
  91. 2
  92. 3
  93. 在Values中则是:
  94. aaa
  95. bbb
  96. ccc
  97. ddd
  98. 这几个属性用来处理ini文件是非常好用的。
  99. 另外说一句,在Delphi6下似乎没有ValueFromIndex这个属性

Delphi总结使用TStrings的一些技巧的更多相关文章

  1. Delphi IDE使用的一些主要技巧

    Delphi IDE使用的一些主要技巧 1.查找和替换 (1)<ctrl>+F[1]:选择页“Find”,进行查找,则根据查找方向继续查找.选择页“Findin Files”,则进行该工程 ...

  2. TStrings的一些技巧(转)

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的.常规的用法大家都知道,现在来讨论它的一些高级的用法.先把要讨论的几个属性列出来:1.CommaText2.Delimiter ...

  3. Delphi 2007体验!

    Delphi 2007体验! baidu 内容摘要:CodeGear(From Borland) 公司公布了最新的Delphi 2007 For Win32版本号.作为一个 Delphi 的使用者,第 ...

  4. delphi XE5下安卓开发技巧

    delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手 ...

  5. Delphi之TStrings和TStringLists类

    Delphi之TStrings和TStringLists类 有些类不是组件,但它们支持存在的组件.这些类是其他组件的典型属性,直接由TPersistent派生,如TStrings.TCanvas和TC ...

  6. Delphi三层开发小技巧:TClientDataSet的Delta妙用

    Delphi三层开发小技巧:TClientDataSet的Delta妙用 转载 2014年10月13日 09:41:14 标签: 三层 / ClientDataSet 318 from :http:/ ...

  7. Delphi开发的一些技巧

    [Delphi]Delphi开发的一些技巧 一.提高查询效率先进行准备查询操作: CustomerQuery.Close; if not (CustomerQuery.Prepared) then - ...

  8. Delphi操作ACCESS技巧集

    1.DELPHI中操作access数据库(建立.mdb文件,压缩数据库)以下代码在WIN2K,D6,MDAC2.6下测试通过,编译好的程序在WIN98第二版无ACCESS环境下运行成功.//在之前us ...

  9. [Delphi]Delphi开发的一些技巧

    一.提高查询效率先进行准备查询操作: CustomerQuery.Close; if not (CustomerQuery.Prepared) then -->查询是否已准备好 Customer ...

随机推荐

  1. Strut2 spring hibernate 整合

    一.创建web项目工程 wzz 点击finish 2.添加spring Jar包   AOP,Core,Persistence Core ,web jar 点击next 点击Finish 3.配置Da ...

  2. 阶乘相关<同余与模算术>

    题意: 题目很简明: 令S[n]=1*1!+2*2!+3*3!+4*4!+....+n*n! 求S[n]%10000007 多组测试数据 每组一个n n的范围:1<=n<=1000000 ...

  3. 块和内嵌div和span

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. ubuntu 15.04怎么安装QQ

    ubuntu 15.04怎么安装QQ | 浏览:468 | 更新:2015-07-21 10:20 1 2 3 4 5 6 7 分步阅读 新装的ubuntu不能没有QQ,我们需要安装QQ来进行及时交流 ...

  5. springmvc配置首页的方式

    <mvc:view-controller path="/" view-name="redirect:/user/loginUI" />

  6. fuel健康检查Heat失败的原因

    service openstack-heat-engine restart chkconfig --level 2345 openstack-heat-engine on

  7. UITableView表格操作

    UITableView[表格视图] UITableView是表格视图,是UIScrollView的子类,非常重要. 一.表格视图常用属性 1.基本属性方法 创建一个tableView //    UI ...

  8. 推荐!国外程序员整理的Java资源大全

    http://www.importnew.com/14429.html 本文由 ImportNew - 唐尤华 翻译自 github akullpp.欢迎加入翻译小组.转载请见文末要求. 构建 这里搜 ...

  9. Ubuntu Server 14.04 & Apache2.4 虚拟主机、模块重写、隐藏入口文件配置

    环境: Ubuntu Server 14.04 , Apache2.4 一.Apache2.4 虚拟主机配置 01. 新建一份配置文件 在apache2.4中,虚拟主机的目录是通过/etc/apach ...

  10. MySQL 1054错误 Unknown column .... in 'on clause'

    ERROR 1054 (42S22): Unknown column ... in 'on clause' 原因: MySQL5.0 Bug, 要把联合的表用括号包含起来才行: 例: SELECT ( ...