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. PL/SQL developer 管理多套数据库

    PL/SQL developer 管理多套数据库,作为一个统一的接口平台,连接多套数据库. 1.. 1.类SQL PLUS窗口:File->New->Command Window,这个类似 ...

  2. 2016青岛网络赛 Sort

    Sort Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

  3. android-------手写签名系统的设计与实现之实现画笔设置

    引自:http://www.xuebuyuan.com/1754358.html 既然我们实现了画布和画笔,也实现了手写,为了提高可用性,我们增加了对画笔风格的设置功能,这样就可以根据自己的需要选择画 ...

  4. UITabBar 蓝色

    效果图1: 第一种解决办法(有局限性): 但是,但是!!!!!虽然不用写代码看起来好方便,在iOS9和8上貌似都没问题.然后我默默地 拿出了自己的小4,发现还似蓝色... 第二种解决办法:(彻底): ...

  5. 丑数<数学技巧>

    题意:丑数就是质因子只有2,3,5 ,7,的数,另外1也是丑数.求第n(1=<n<=5842)个丑数,n=0,结束. 思路:.3.5或者7的结果(1除外).那么,现在最主要的问题是如何排序 ...

  6. MAC 调整Launchpad 图标大小

    1.调整每一列显示图标数量 defaults write com.apple.dock springboard-rows -int 7 2.调整每一行显示图标数量 defaults write com ...

  7. Ubuntu下安装PDF 文档阅读器Adobe Reader 9.5.5

    由于没有PPA所以我们必须在Adobe的官方FTP上下载安装,下面的方法同时适用于32位和64位系统: wget ftp://ftp.adobe.com/pub/adobe/reader/unix/9 ...

  8. AOJ2249最短路+最小费用

    题意:求出某个点到其他点的最短路,并求出在最短路情况下的最小费用 分析:用dijkstra求出最短路并同时更新最小费用即可,注意的是在最短路长度相同时费用取最小即可 #include <iost ...

  9. rest第一篇

    rest的作用 : 以http请求的格式提供数据 实际项目中,定义一个模块,从http请求中拿参数,然后访问mysql数据库得到数据,返回给http请求.

  10. oracle查看表空间物理文件的名称,路径及大小

    select tablespace_name, file_id,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files ...