加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi TStringList的用法

发布时间:2020-12-15 10:00:09 所属栏目:大数据 来源:网络整理
导读: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; ? ?s
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-1do ? ? ShowMessage(Strs[i]); end; 执行了这段代码后,可以看到ShowMessage显示出来的分别是:aaa bbb cccddd。 也就是说,strs.CommaText :=constr这一句的作用,就是把一个字符串以','为分割符,分段添加到TStrings中。 那么如果不是以','来分割,又该怎么做呢?现在看第二个例子。使用Delimiter和DelimitedText。 const ? ?constr :String ='aaabbbcccddd'; var ? ?strs :TStrings; ? ?i :Integer; begin ? ?strs :=TStringList.Create; ? ?strs.Delimiter := ''; ? ?strs.DelimitedText :=constr; ? ?for i := 0 to Strs.Count-1do ? ? 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-1do ? ? 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-1do ? ? ShowMessage(Strs[i]); end; 显示出来的又是aaa bbb cccddd。对比一下,应该不难明白吧?这个就不多说了,用得也不多。 但是还要多说一句,当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-1do ? ?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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读