TStrings是一個抽象類在實際開發中是除了基本類型外應用得最多的
常規的用法大家都知道現在來討論它的一些高級的用法
先把要討論的幾個屬性列出來
CommaText
Delimiter & DelimitedText
Names & values & valueFromInd ex
先看第一個CommaText怎麼用呢?用代碼說話
const
constr String = aaabbbcccddd
var
strs TStrings
i Integer
begin
strs = TStringListCreate
strsCommaText = constr
for i = to StrsCount do
ShowMessage(Strs)
end
執行了這段代碼後可以看到ShowMessage顯示出來的分別是aaa bbb ccc ddd
也就是說strsCommaText = constr這一句的作用就是把一個字符串以為分割符分段添加到TStrings中
那麼如果不是以來分割又該怎麼做呢?現在看第二個例子使用Delimiter和DelimitedText
const
constr String = aaa\bbb\ccc\ddd
var
strs TStrings
i Integer
begin
strs = TStringListCreate
strsDelimiter = \
strsDelimitedText = constr
for i = to StrsCount do
ShowMessage(Strs)
end
可以看到 顯示的效果和第一個例子是一模一樣的解釋一下
Delimiter為分隔符默認為DelimitedText就是按Delimiter為分隔符的一個串得到賦值後回把這個字符串按Delimiter的字符添加到TStrings中
說到這裡有想起一個屬性QuoteChar其默認值為(不包括單引號)
有何用呢?看例子
const
constr String = aaa\bbb\ccc\ddd
var
strs TStrings
i Integer
begin
strs = TStringListCreate
strsDelimiter = \
strsDelimitedText = constr
for i = to StrsCount do
ShowMessage(Strs)
end
顯示出來的仍然是aaa bbb ccc ddd為什麼不是aaa bbb ccc ddd呢?
再來看一個例子
const
constr String = |aaa|\|bbb|\|ccc|\|ddd|
var
strs TStrings
i Integer
begin
strs = TStringListCreate
strsDelimiter = \
strsQuoteChar = |
strsDelimitedText = constr
for i = to StrsCount do
ShowMessage(Strs)
end
顯示出來的又是aaa bbb ccc ddd對比一下應該不難明白吧?這個就不多說了用得也不多
但是還要多說一句當Delimiter為而QuoteChar為時DelimitedText和CommaText是同等的
最後要說的三個是Names & values & valueFromIndex
看看下面的代碼
const
constr String = =aaa=bbb=ccc=ddd
var
strs TStrings
i Integer
begin
strs = TStringListCreate
strsCommaText = constr
for i = to strsCount do
begin
ShowMessage(strsNames)
ShowMessage(strsvalues[strsNames])
ShowMessage(strsvalueFromIndex)
end
end
通過這個例子不難看出
這個時候strs中的內容是
=aaa
=bbb
=ccc
=ddd
而Names中則是
在values中則是
aaa
bbb
ccc
ddd
From:http://tw.wingwit.com/Article/program/Delphi/201311/8425.html