Delphi总结使用TStrings的一些技巧
2013-12-30 12:25
441 查看
先把要讨论的几个属性列出来: 1、CommaText 2、Delimiter & DelimitedText 3、Names & Values & ValueFromIndex 先看第一个:CommaText。怎么用呢?用代码说话: const constr :String = 'aaa,bbb,ccc,ddd'; var strs :TStrings; i :Integer; begin strs := TStringList.Create; strs.CommaText := constr; for i := 0 to Strs.Count-1 do ShowMessage(Strs[i]); end; 执行了这段代码后,可以看到ShowMessage显示出来的分别是:aaa bbb ccc ddd。 也就是说,strs.CommaText := constr这一句的作用,就是把一个字符串以'',''为分割符,分段添加到TStrings中。 那么如果不是以'',''来分割,又该怎么做呢?现在看第二个例子。使用Delimiter和DelimitedText。 const constr :String = 'aaa\bbb\ccc\ddd'; var strs :TStrings; i :Integer; begin strs := TStringList.Create; strs.Delimiter := '\'; strs.DelimitedText := constr; for i := 0 to Strs.Count-1 do ShowMessage(Strs[i]); end; 可以看到, 显示的效果和第一个例子是一模一样的。解释一下: Delimiter为分隔符,默认为:'',''。DelimitedText就是按Delimiter为分隔符的一个串,得到赋值后回把这个字符串按Delimiter的字符添加到TStrings中。 说到这里,有想起一个属性,QuoteChar。其默认值为:''"''(不包括单引号) 有何用呢?看例子: const constr :String = '"aaa"\"bbb"\"ccc"\"ddd"'; var strs :TStrings; i :Integer; begin strs := TStringList.Create; strs.Delimiter := '\'; strs.DelimitedText := constr; for i := 0 to Strs.Count-1 do ShowMessage(Strs[i]); end; 显示出来的仍然是aaa bbb ccc ddd。为什么不是:"aaa" "bbb" "ccc" "ddd"呢? 再来看一个例子: const constr :String = '|aaa|\|bbb|\|ccc|\|ddd|'; var strs :TStrings; i :Integer; begin strs := TStringList.Create; strs.Delimiter := '\'; strs.QuoteChar := '|'; strs.DelimitedText := constr; for i := 0 to Strs.Count-1 do ShowMessage(Strs[i]); end; 显示出来的又是aaa bbb ccc ddd。对比一下,应该不难明白吧?这个就不多说了,用得也不多。 但是还要多说一句,当Delimiter为:'',''而QuoteChar为:''"''时,DelimitedText和CommaText是同等的。 最后要说的三个是:Names & Values & ValueFromIndex。 看看下面的代码: const constr :String = '0=aaa,1=bbb,2=ccc,3=ddd'; var strs :TStrings; i :Integer; begin strs := TStringList.Create; strs.CommaText := constr; for i := 0 to strs.Count-1 do begin ShowMessage(strs.Names[i]); ShowMessage(strs.Values[strs.Names[i]]); ShowMessage(strs.ValueFromIndex[i]); end; end; 通过这个例子不难看出: 这个时候strs中的内容是: 0=aaa 1=bbb 2=ccc 3=ddd 而Names中则是: 0 1 2 3 在Values中则是: aaa bbb ccc ddd 这几个属性用来处理ini文件是非常好用的。 另外说一句,在Delphi6下似乎没有ValueFromIndex这个属性
相关文章推荐
- Delphi总结使用TStrings的一些技巧
- Delphi总结使用TStrings的一些技巧
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 宏定义的一些使用技巧总结
- Analog使用中的一些技巧和总结
- 【转帖】使用python爬虫抓站的一些技巧总结:进阶篇
- Spring MVC学习总结(6)——一些Spring MVC的使用技巧
- 总结一些个人使用MyEclipse和Eclipse中的技巧
- 转载:宏定义的一些使用技巧总结
- Delphi--TStrings的一些技巧
- Spring MVC学习总结(6)——一些Spring MVC的使用技巧
- 宏定义的一些使用技巧总结
- 在实际项目中总结的一些CSS的使用技巧和重要知识点。
- 转载:宏定义的一些使用技巧总结
- 宏定义的一些使用技巧总结
- 使用python爬虫抓站的一些技巧总结:进阶篇
- 【转帖】使用python爬虫抓站的一些技巧总结:进阶篇
- 使用python爬虫抓站的一些技巧总结:进阶篇
- FIDDLER的使用方法及技巧总结(连载五)FIDDLER的一些故障排除
- Java中一些关键字的使用技巧总结