2009-04-13 15:18:53
| 分類:
delphi
| 標籤:|舉報
|字型大小大中
小訂閱
宣告:type tstringlist;
描述:tstringlist是乙個公用的類型別,它對於許多列表處理非常有用。在字串列表中的專案可以被插入、刪除和排序。
tstringlist是從tstrings中派生出來的,你也可以使用tstrings,但不建議這樣做,因為它是不完全的--即有一些方法是抽象的。而tstringlist實現了這些抽象方法(clear, delete 和insert)。我們會覆蓋tstringlist的主要屬性和方法,包含那些派生自tstings的。
count屬性:返回列表中字串的數量。
capacity屬性:設定或取得字串列表的當前容量。為了效能方面的原因,需要自行管理這個容量。
strings屬性:取得或更新在列表中給定索引的字串(第乙個列表專案的索引為0)。注意:strings屬性是預設的屬性,這就意味著使用時可以不用指定strings名稱,如:myname:=names.strings[4]相當於myname:=names[4]。
text屬性:以乙個大字串的形式設定或取得列表內容。這個大字串的每個字串以換行回車符結束。對於從乙個可以儲存多行文字的視覺化物件(如memo)中匯入資料而言非常有用。
commatext屬性:以乙個大字串的形式設定或取得列表內容。這個大字串的每個專案字串以逗號分隔。對於從乙個電子**匯出的文字檔案中匯入資料是非常用用的。當取得資料時,如果乙個字串中包含了內嵌的空格時,它將被雙引號括起來。
delimitedtext屬性:以乙個大字串的形式設定或取得列表內容。這個大字串的每個專案字串以分隔號delimiter分隔(預設為逗號)。如果字串包含內嵌的空格,必須用quotechar符號括起來(預設是雙引號)。
quotechar屬性:當使用delimitedtext時,用什麼符號將有空格的字串括起來。
delimiter屬性:當使用delimitedtext時,用於分隔字串的符號。
names屬性:在字串列表中的字串可以被當作一對"名稱/數值"對待。每個字串必須是不能含有空格,必須包含乙個"="等於號(或者是當前的namevalueseparator變數值)。這是個非常有用的概念,參見value屬性、valuefromindex屬性和indexofname方法。
value屬性:當使用"名稱/數值"對時,返回給定名稱的數值。
valuefromindex屬性:當使用"名稱/數值"對時,返回給定字串索引(索引開始於0)的數值。
casesensitive屬性:當設為true時,delphi對待字串是以大小寫混合的形式,用於執行某種操作,如排序sort。
duplicates屬性:這個屬性可以是下列tduplicates列舉值中的其中乙個:
dupignore:忽略(丟棄)重複值
dupaccept:允許重複值
duperror:如果有重複值則丟擲異常
在加入字串之前,必須先將其設為某個期望的值。
sorted屬性:如果是true,所有加入的字串將會進行排序;如果是false,後加入的處於字串列表尾部。參見sort方法。
add方法:將給定的字串加入到列表中,返回分配的索引值(開始於0)。
insert方法:在給定的索引位置插入乙個字串。位置0的話,將強制在開始處插入。
delete方法:刪除定索引的字串。
clear方法:刪除列表中的所有字串。
move方法:將字串從乙個索引位置移動到另乙個索引位置,周圍的字串適當地移動。
exchange方法:根據索引值,交換列表中的兩個字串。
indexof方法:取得給定字串第乙個匹配的字串的索引位置,如果沒有找到則返回-1。
indexofname方法:取得給定字串第乙個匹配的"名稱/數值"對字串的索引位置,如果沒有找到則返回-1。
find方法:與indexof相同,但用於排序的字串列表。
sort方法:當sorted為false時,使用這個方法強制進行排序。
addstrings方法:將另乙個字串列表中的字串加入到本個字串列表。
assign方法:用另乙個列表內容替換當前列表。
loadfromfile方法:非常有用。從乙個文字檔案載入字串列表。每乙個文字行(以換行回車符crlf結束)成為乙個專案字串。
var animals : tstringlist; // 定義字串列表變數 i : integer; begin // 建立物件 animals := tstringlist.create; // 加入幾個字串 animals.add('cat'); animals.add('mouse'); animals.add('giraffe'); // 顯示 for i := 0 to animals.count-1 do showmessage(animals[i]); // animals[i] 相當於 animals.strings[i] end;
程式執行結果:
catmouse
giraffe
var names : tstringlist; // 定義字串列表變數 agestr : string; i : integer; begin //建立成物件 names := tstringlist.create; // 加入一些字串 names.commatext := 'neil=45, brian=63, jim=22'; // 查詢brian的年齡 agestr := names.values['brian']; //顯示這個值 showmessage('brians age = '+agestr); // 顯示所有名字與相應的年齡 for i := 0 to names.count-1 do begin showmessage(names.names[i]+' is '+names.valuefromindex[i]); end; end;
程式執行結果:
brians age is 63
neil is 45
brian is 63
jim is 22
var cars : tstringlist; //定義乙個字串列表變數 i : integer; begin // 建立物件 cars := tstringlist.create; // 加入幾種汽車 - 使用delimitedtext屬性 // with overriden control variables cars.delimiter := ' '; // 每個專案用空格分隔 cars.quotechar := '|'; //每個專案用"|"括起來 cars.delimitedtext := '|honda jazz| |ford mondeo| |jaguar "e-type"|'; // 顯示這些汽車 for i := 0 to cars.count-1 do showmessage(cars[i]); // cars[i]相當於 cars.strings[i] end;
程式執行結果:
honda jazz
ford mondeo
jaguar "e-type"
字串 列表
定義 使用單引號或者雙引號括起來的任意字串,我們都可以稱之為字串。字串建立 str1 或者 str2 字串的拼接 注意 不同型別不能使用 進行拼接 注意 會在逗號位置產生乙個空格 使用格式化的方式 print format str1,str2 print join list1 序列裡的必須是字串 s...
字串,列表
一.資料型別 type 4 二.字串 1.如何分割字串 url sdasdada,sdasdasd,122323,url.split split 分割字串 sdasdada sdasdasd 122323 2.把字串每個字都單獨弄到列表裡 s codeclassroom.cn l list s pr...
字串 列表 元組
字串常用方法 s my name is jike.i am 18 print s.upper 全部轉成大寫 print s.lower 全部轉成小寫 print s.title 將字串中單詞首字母大寫 print s.strip 去除兩邊的空格 print s.count m 統計字元出現的次數 p...