delphi TStrings的一些用法
生活随笔
收集整理的這篇文章主要介紹了
delphi TStrings的一些用法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Delphi TStrings是一個(gè)抽象類(lèi),在實(shí)際開(kāi)發(fā)中,是除了基本類(lèi)型外,應(yīng)用得最多的。
常規(guī)的用法大家都知道,現(xiàn)在來(lái)討論它的一些高級(jí)的用法。
先把要討論的幾個(gè)屬性列出來(lái):
1、CommaText
2、Delimiter & DelimitedText
3、Names & values & valueFromIndex
先看第一個(gè):CommaText。怎么用呢?用代碼說(shuō)話:
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);
end;
執(zhí)行了這段代碼后,可以看到ShowMessage顯示出來(lái)的分別是:aaa bbb ccc ddd。
也就是說(shuō),strs.CommaText := constr這一句的作用,就是把一個(gè)字符串以','為分割符,分段添加到TStrings中。
那么如果不是以','來(lái)分割,又該怎么做呢?現(xiàn)在看第二個(gè)例子。使用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);
end;
可以看到, 顯示的效果和第一個(gè)例子是一模一樣的。解釋一下:
Delimiter為分隔符,默認(rèn)為:','。DelimitedText就是按Delimiter為分隔符的一個(gè)串,得到賦值后回把這個(gè)字符串按Delimiter的字符添加到TStrings中。
說(shuō)到這里,有想起一個(gè)屬性,QuoteChar。其默認(rèn)值為:'"'(不包括單引號(hào))
有何用呢?看例子:
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);
end;
顯示出來(lái)的仍然是aaa bbb ccc ddd。為什么不是:"aaa" "bbb" "ccc" "ddd"呢?
再來(lái)看一個(gè)例子:
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);
end;
顯示出來(lái)的又是aaa bbb ccc ddd。對(duì)比一下,應(yīng)該不難明白吧?這個(gè)就不多說(shuō)了,用得也不多。
但是還要多說(shuō)一句,當(dāng)Delimiter為:','而QuoteChar為:'"'時(shí),DelimitedText和CommaText是同等的。
最后要說(shuō)的三個(gè)是: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);
ShowMessage(strs.values[strs.Names]);
ShowMessage(strs.valueFromIndex);
end;
end;
通過(guò)這個(gè)例子不難看出:
這個(gè)時(shí)候strs中的內(nèi)容是:
0=aaa
1=bbb
2=ccc
3=ddd
而Names中則是:
0
1
2
3
在values中則是:
aaa
bbb
ccc
ddd
常規(guī)的用法大家都知道,現(xiàn)在來(lái)討論它的一些高級(jí)的用法。
先把要討論的幾個(gè)屬性列出來(lái):
1、CommaText
2、Delimiter & DelimitedText
3、Names & values & valueFromIndex
先看第一個(gè):CommaText。怎么用呢?用代碼說(shuō)話:
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);
end;
執(zhí)行了這段代碼后,可以看到ShowMessage顯示出來(lái)的分別是:aaa bbb ccc ddd。
也就是說(shuō),strs.CommaText := constr這一句的作用,就是把一個(gè)字符串以','為分割符,分段添加到TStrings中。
那么如果不是以','來(lái)分割,又該怎么做呢?現(xiàn)在看第二個(gè)例子。使用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);
end;
可以看到, 顯示的效果和第一個(gè)例子是一模一樣的。解釋一下:
Delimiter為分隔符,默認(rèn)為:','。DelimitedText就是按Delimiter為分隔符的一個(gè)串,得到賦值后回把這個(gè)字符串按Delimiter的字符添加到TStrings中。
說(shuō)到這里,有想起一個(gè)屬性,QuoteChar。其默認(rèn)值為:'"'(不包括單引號(hào))
有何用呢?看例子:
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);
end;
顯示出來(lái)的仍然是aaa bbb ccc ddd。為什么不是:"aaa" "bbb" "ccc" "ddd"呢?
再來(lái)看一個(gè)例子:
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);
end;
顯示出來(lái)的又是aaa bbb ccc ddd。對(duì)比一下,應(yīng)該不難明白吧?這個(gè)就不多說(shuō)了,用得也不多。
但是還要多說(shuō)一句,當(dāng)Delimiter為:','而QuoteChar為:'"'時(shí),DelimitedText和CommaText是同等的。
最后要說(shuō)的三個(gè)是: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);
ShowMessage(strs.values[strs.Names]);
ShowMessage(strs.valueFromIndex);
end;
end;
通過(guò)這個(gè)例子不難看出:
這個(gè)時(shí)候strs中的內(nèi)容是:
0=aaa
1=bbb
2=ccc
3=ddd
而Names中則是:
0
1
2
3
在values中則是:
aaa
bbb
ccc
ddd
轉(zhuǎn)載于:https://blog.51cto.com/zsqztg/171122
總結(jié)
以上是生活随笔為你收集整理的delphi TStrings的一些用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (更新)网络规划设计师考试大纲 及教程_
- 下一篇: 路由环路及解决办法