程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第三章-字符串列表及應用(一)(1)

第三章-字符串列表及應用(一)(1)

編輯:Delphi

Delphi應用程序經常要處理字符串列表,如組合框和列表框中的字符串,TMemo部件的文本行,屏幕支持的字體列表,TNotebook部件的tabs屬性,字符串網格的行、列等等。

雖然應用程序以不同的方法使用這些列表,但Delphi通過一個叫字符串列表(Tstrings)的對象提供統一的界面,並且在不同場合可相互轉化。例如,可以在TMemo部件中編輯某一字符串,並把它當成列表框中列表項使用。

在Delphi集成開發環境中也經常要使用字符串列表。如在Object Inspector窗體的取值欄中常列有Tstrings字符,雙擊該字符,將彈出字符列表編輯器,如圖3.1,在編輯器中可進行編輯、加入、刪除等操作 。

在運行狀態時也可以操作字符串列表,常見的字符串列表操作如下:

● 列表中操作字符串

● 裝載、保存字符串列表

● 創建字符串列表

● 在字符串列表中加入對象

本章將介紹字符串列表的常用操作及簡單應用。

3.1 字符串列表的常用操作 

3.1.1 列表中操作字符串 

在Delphi應用程序中,經常要對列表中的字符串進行操作。例如,設計時修改字符串列表屬性。

常見的字符串操作如下:

● 計算列表中字符串數目

● 訪問指定字符串

● 查找字符串的位置

● 往列表中加入字符串

● 刪除列表中的字符串

● 在列表中移動字符串

● 復制一個完整的字符串列表

● 復制列表中的字符串 

3.1.1.1 計算列表中的字符串數目 

使用Count屬性可計算列表中的字符串數目。Count是只讀屬性,用以指示列表中字符串列表數目。因為字符串列表是以零開始索引,因而Count比列表的最大索引數大一。

例如,應用程序想計算當前屏幕支持的字體數目,可查找屏幕對象的字體列表,該列表包含了屏幕支持的所有字體的名字。

    FontCount:=Screen.Fonts.Count;

3.1.1.2 訪問指定字符串 

字符串列表有一個可索引的Strings屬性,可象使用字符串數組一樣使用Strings。例如,列表中第一個字符串為Strings[0]。因為Strings屬性為字符串列表中最常用的屬性,Strings屬性可做為字符串列表的缺省屬性,即使用時可省略Strings標識符。

要訪問字符串中的指定字符,可查找該字符的起始位置或索引。字符串數目是以零開始記數的。如果列表中有三個字符串,其索引范圍為0..2。

以下代碼是等價的: 

Memol.Lines.Strings[0]:='This is the first line.';

Memol.Lines[0]:='This is the first line.'; 

3.1.1.3 查找字符串的位置 

 Indexof方法可查找指定字符串的位置。Indexof有一個字符串類型的參數,方法返回列表中匹配字符串的位置。如果列表中無匹配字符串,將返回- 1。

Indexof方法只能查找完整字符串,即必須完全匹配整個字符串。如果只匹配部分字符串,必須編寫相應代碼。

 以下代碼判定列表中是否有指定字符串:

if FileListBox1.Items.IndexOf('AUTOEXEC.BAT') > -1 then

begin

Color := clYellow;

Label1.Caption := 'You are in the root directory!';

end; 

3.1.1.4 在列表中加入字符串 

有兩種方式往列表中加入字符串:可把字符串加到列表的最後,也可插入列表之中。

要把字符串加至列表尾部,使用Add方法,把字符串作為參數傳遞。

要把字符串插入列表中,使用Insert方法,傳遞兩個參數:插入的位置和字符串。

例如,要把“Three”插入至列表中的第三個位置,使用代碼Insert(2,'Three')。如果列表中的字符不到2個,Delphi將產生超出索引范圍的異常(關於異常詳見十二章)。 

3.1.1.5 在列表中移動字符串 

應用程序可以在列表中把指定字符串移至另一個位置,如果字符串與某個對象相連,則該對象與字符串同步移動。

Move方法可實現字符串的移動,它有兩個參數:現行位置和要移動的位置。以下代碼把第三個字符串移至第五的位置: 

 Move(2,4); 

3.1.1.6 刪除列表中的字符串 

使用Delete方法可以刪除指定的字符串。Delete的參數是指定字符串的位置,如果不知道字符串的位置,可使用Indexof方法。

要刪除字符串列表中所有的字符串,可使用Clear方法。

以下代碼刪除列表框中的指定字符串: 

  With ListBox1.Items do

begin

if Indexof('bureaucracy')>-1 then

Delete (Indexof('bureaucracy'));

end; 

3.1.1.7 復制完整的字符串列表 

把一個列表復制到另一個列表相當於把源列表賦值給目標列表,即使列表從屬於不同的部件,Delphi也可以進行這種復制。

復制列表將覆蓋掉目標列表,如果要把源列表加到目標列表的尾部,使用Addstrings方法。

以下代碼分別為復制列表和連接列表: 

Outline1.Lines:=ComboBox1.Items;

Outline1.Addstrings(ComboBox1.Items); 

3.1.1.8 重復操作列表中的字符串 

很多情況需要對表中的每一個字符串進行操作,如改變字符串的大小寫。象這種重復操作可以用 for 循環來實現,同時使用列表的整數類型的索引。

以下代碼對列表框的字符串進行重復操作。當用戶按下按鈕時,對列表框中的字符串進行大小寫轉換。 

procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

begin

for I := 0 to ListBox1.Items.Count -1 do

ListBox1.Items[I] := UpperCase(ListBox1.Items[I]);

end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved