熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi字符串列表及應用(二)

2022-06-13   來源: Delphi編程 

   重復操作列表中的字符串 

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

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

  procedure TFormButtonClick(Sender: TObject);
  var
  I: Integer;
  begin
  for I := to ListBoxItemsCount do
  ListBoxItems[I] := UpperCase(ListBoxItems[I]);
  end;

   裝載保存字符串列表 

  應用程序可以非常方便的把Delphi字符串列表存入文本文件或者從文本文件中重新裝載(或裝入另一個不同的列表)字符串列表有專門的方法處理這類操作

  使用LoadFromFile方法從文件中裝載字符串列表LoadFromFile從文本文件中把每一行字符串裝入列表中

  把列表保存在文件中使用SaveToFile方法使用時傳遞文件名的參數如果文件不存在SaveToFile將創建它否則將用列表覆蓋現有文件內容

  以下代碼裝入AUTOEXECBAT的文件並以AUTOEXECBAK為文件名進行備份 

  procedure TFormFormCreat(sender:TObject);
  var
  FileName:String;
  begin
  FileName:=C:\AUTOEXECBAT;
  With Memo do
  begin
  LoadFromFile(FileName)
  SaveToFile(ChangeFileExt(FileNameBAK));
  end;
  end;
 
   創建新的字符串列表 

  大多數情況下應用程序使用的字符串列表是做為部件的某一部分因此不必創建列表但Delphi允許創建不依賴部件的字符串列表

  值得注意的是程序創建的字符串列表必須在使用完之後釋放列表所占用的內存空間有兩種不同的情況需要處理一是程序以簡單的方式創建使用釋放字符串列表二是由程序創建在運行期間均可能使用在程序終止前釋放這兩種情況主要取決於是創建短期字符串列表還是長期字符串列表 

  短期字符串列表 

  短期字符串列表用於處理簡單事物程序在同一處創建使用釋放列表這是最安全的使用字符串列表的方法

  因為字符串列表要為自己和它的字符串分配內存所以要用tryfinally對列表進行保護以確保發生異常後釋放列表所占用的內存空間

  創建短期字符串列表的基本步驟為

   構造字符串列表對象

   在tryfinally塊中使用列表

   在finally後釋放列表空間

  以下代碼創建列表使用列表最後釋放列表空間 

  procedure TFormButtonClick(Sender:Tobject);
  var
  TemList:TStrings;
  begin
  Templist:=TStringListCreate;
  try
  { use the string list }
  finally
  TemplistFree;
  end;
  end;
 
   長期字符串列表 

  如果要在程序運行的任何時候使用字符串列表則需在程序開始運行時就創建列表並在程序終止前釋放

  運行時創建字符串列表的步驟為

   在程序主窗體對象的域中加入TStringsList類型的域

   在主窗體的OnCreate事件中創建句柄該事件句柄在主窗體顯示前運行

   在創建事件句柄後創建字符串列表對象

   在主窗體的OnDestroy事件創建句柄該事件句柄在主窗體消失之前運行

  這樣在程序運行過程中任何過程事件均能訪問該字符串列表

  以下代碼在程序中加入了一個Clicklist的字符串列表用戶每按一次鼠標鍵程序往Clicklist中加入一字符串程序結束前把該列表存入文件 

  unit Unit; 
  interface 
  uses WinTYpes WinProcs Classes Graphics Forms Controls Apps; 
  type
  TForm = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormDestroy(Sender: TObject);
  procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X Y: Integer);
  private
  { Private declarations }
  public
  { Public declarations }
  ClickList: TStrings; {declare the field}
  end; 
  var
  Form: TForm; 
  implementation 
  {$R *DFM} 
  procedure TFormFormCreate(Sender: TObject);
  begin
  ClickList := TStringListCreate; {construct the list}
  end; 
  procedure TFormFormDestroy(Sender: TObject);
  begin
  ClickListSaveToFile(ChangeFileExt(ApplicationExeName LOG));
  {save the list}
  ClickListFree; {destroy the list object}
  end; 
  procedure TFormFormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X Y: Integer);
  begin
  ClickListAdd(Format(Click at (%d %d) [X Y])); {add a
  string to the list}
  end; 
  end


From:http://tw.wingwit.com/Article/program/Delphi/201311/24799.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.