TStringList 字串列表

2021-06-22 10:24:32 字數 3702 閱讀 7767

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...