Delphi應用程序經常要處理字符串列表如組合框和列表框中的字符串TMemo部件的文本行屏幕支持的字體列表TNotebook部件的tabs屬性字符串網格的行列等等
雖然應用程序以不同的方法使用這些列表但Delphi通過一個叫字符串列表(Tstrings)的對象提供統一的界面並且在不同場合可相互轉化例如可以在TMemo部件中編輯某一字符串並把它當成列表框中列表項使用
在Delphi集成開發環境中也經常要使用字符串列表如在Object Inspector窗體的取值欄中常列有Tstrings字符雙擊該字符將彈出字符列表編輯器如圖在編輯器中可進行編輯加入刪除等操作
在運行狀態時也可以操作字符串列表常見的字符串列表操作如下
列表中操作字符串
裝載保存字符串列表
創建字符串列表
在字符串列表中加入對象
本章將介紹字符串列表的常用操作及簡單應用
字符串列表的常用操作
列表中操作字符串
在Delphi應用程序中經常要對列表中的字符串進行操作例如設計時修改字符串列表屬性
常見的字符串操作如下
計算列表中字符串數目
訪問指定字符串
查找字符串的位置
往列表中加入字符串
刪除列表中的字符串
在列表中移動字符串
復制一個完整的字符串列表
復制列表中的字符串
計算列表中的字符串數目
使用Count屬性可計算列表中的字符串數目Count是只讀屬性用以指示列表中字符串列表數目因為字符串列表是以零開始索引因而Count比列表的最大索引數大一
例如應用程序想計算當前屏幕支持的字體數目可查找屏幕對象的字體列表該列表包含了屏幕支持的所有字體的名字
FontCount:=ScreenFontsCount;
訪問指定字符串
字符串列表有一個可索引的Strings屬性可象使用字符串數組一樣使用Strings例如列表中第一個字符串為Strings[]因為Strings屬性為字符串列表中最常用的屬性Strings屬性可做為字符串列表的缺省屬性即使用時可省略Strings標識符
要訪問字符串中的指定字符可查找該字符的起始位置或索引字符串數目是以零開始記數的如果列表中有三個字符串其索引范圍為
以下代碼是等價的
MemolLinesStrings[]:=This is the first line;
MemolLines[]:=This is the first line;
查找字符串的位置
Indexof方法可查找指定字符串的位置Indexof有一個字符串類型的參數方法返回列表中匹配字符串的位置如果列表中無匹配字符串將返回
Indexof方法只能查找完整字符串即必須完全匹配整個字符串如果只匹配部分字符串必須編寫相應代碼
以下代碼判定列表中是否有指定字符串
if FileListBoxItemsIndexOf(AUTOEXECBAT) > then
begin
Color := clYellow;
LabelCaption := You are in the root directory!;
end;
在列表中加入字符串
有兩種方式往列表中加入字符串可把字符串加到列表的最後也可插入列表之中
要把字符串加至列表尾部使用Add方法把字符串作為參數傳遞
要把字符串插入列表中使用Insert方法傳遞兩個參數插入的位置和字符串
例如要把Three插入至列表中的第三個位置使用代碼Insert(Three)如果列表中的字符不到個Delphi將產生超出索引范圍的異常(關於異常詳見十二章)
在列表中移動字符串
應用程序可以在列表中把指定字符串移至另一個位置如果字符串與某個對象相連則該對象與字符串同步移動
Move方法可實現字符串的移動它有兩個參數現行位置和要移動的位置以下代碼把第三個字符串移至第五的位置Move();
刪除列表中的字符串
使用Delete方法可以刪除指定的字符串Delete的參數是指定字符串的位置如果不知道字符串的位置可使用Indexof方法
要刪除字符串列表中所有的字符串可使用Clear方法
以下代碼刪除列表框中的指定字符串
With ListBoxItems do
begin
if Indexof(bureaucracy)> then
Delete (Indexof(bureaucracy));
end;
復制完整的字符串列表
把一個列表復制到另一個列表相當於把源列表賦值給目標列表即使列表從屬於不同的部件Delphi也可以進行這種復制
復制列表將覆蓋掉目標列表如果要把源列表加到目標列表的尾部使用Addstrings方法
以下代碼分別為復制列表和連接列表
OutlineLines:=ComboBoxItems;
OutlineAddstrings(ComboBoxItems);
From:http://tw.wingwit.com/Article/program/Delphi/201311/24810.html