
Delphi字符串列表及应用(一)
发布时间:2006-03-15 16:18:06 来源:友佳学院(整理) 网友评论 0 条 Delphi应用程序经常要处理字符串列表,如组合框和列表框中的字符串,TMemo
虽然应用程序以不同的方法使用这些列表,但
在Delphi集成开发环境中也经常要使用字符串列表。如在ObjectInspector窗体的取值栏中常列有Tstrings
在运行状态时也可以操作字符串列表,常见的字符串列表操作如下:
●
●
●
●
本章将介绍字符串列表的常用操作及简单应用。
3.1 字符串列表的常用操作
3.1.1 列表中操作字符串 Delphi应用程序中,经常要对列表中的字符串进行操作。例如,设计时修改字符串列表属性。 计算列表中字符串数目 访问指定字符串 查找字符串的位置
在
常见的字符串操作如下:
●
●
●
● 往列表中加入字符串 删除列表中的字符串 在列表中移动字符串 复制一个完整的字符串列表 复制列表中的字符串
3.1.1.1 计算列表中的字符串数目 Count属性可计算列表中的字符串数目。Count
使用
例如,应用程序想计算当前屏幕支持的字体数目,可查找屏幕对象的字体列表,该列表包含了屏幕支持的所有字体的名字。
FontCount:=Screen.Fonts.Count;
3.1.1.2 访问指定字符串 Strings属性,可象使用字符串数组一样使用Strings
字符串列表有一个可索引的
要访问字符串中的指定字符,可查找该字符的起始位置或索引。字符串数目是以零开始记数的。如果列表中有三个字符串,其索引范围为0..2
以下代码是等价的:
Memol.Lines.Strings[0]:='This is the first line.';
Memol.Lines[0]:='Thisis the first line.';
3.1.1.3 查找字符串的位置 Indexof方法可查找指定字符串的位置。Indexof
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')
3.1.1.5 在列表中移动字符串 Move方法可实现字符串的移动,它有两个参数:现行位置和要移动的位置。以下代码把第三个字符串移至第五的位置: Move(2,4);
应用程序可以在列表中把指定字符串移至另一个位置,如果字符串与某个对象相连,则该对象与字符串同步移动。
3.1.1.6 删除列表中的字符串 Delete方法可以删除指定的字符串。Delete
使用
要删除字符串列表中所有的字符串,可使用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;
3.1.2 装载、保存字符串列表 Delphi字符串列表存入文本文件,或者从文本文件中重新装载(
应用程序可以非常方便的把
使用
把列表保存在文件中使用SaveToFile方法,使用时传递文件名的参数。如果文件不存在,SaveToFile
以下代码装入AUTOEXEC.BAT的文件,并以AUTOEXEC.BAK
procedure TForm1.FormCreat(sender:TObject);
var
FileName:String;
begin
FileName:='C:/AUTOEXEC.BAT';
With Memo1 do
begin
LoadFromFile(FileName)
SaveToFile(ChangeFileExt(FileName,'BAK'));
end;
end;
3.1.3 创建新的字符串列表 Delphi
大多数情况下,应用程序使用的字符串列表是做为部件的某一部分,因此不必创建列表,但
值得注意的是程序创建的字符串列表必须在使用完之后,释放列表所占用的内存空间。有两种不同的情况需要处理:一是程序以简单的方式创建、使用、释放字符串列表;二是由程序创建,在运行期间均可能使用,在程序终止前释放。这两种情况主要取决于是创建短期字符串列表还是长期字符串列表。
3.1.3.1短期字符串列表 try..finally
短期字符串列表用于处理简单事物。程序在同一处创建、使用、释放列表。这是最安全的使用字符串列表的方法。
因为字符串列表要为自己和它的字符串分配内存,所以要用
创建短期字符串列表的基本步骤为:
1. 构造字符串列表对象;2. 在try..finally
3. 在finally后释放列表空间。procedure TForm1.Button1Click(Sender:Tobject);
以下代码创建列表、使用列表、最后释放列表空间:
var
TemList:TStrings;
begin
Templist:=TStringList.Create;
try
{ use the string list }
finally
Templist.Free;
end;
end;
3.1.3.2 长期字符串列表 1. 在程序主窗体对象的域中加入TStringsList
如果要在程序运行的任何时候使用字符串列表,则需在程序开始运行时就创建列表,并在程序终止前释放。
运行时创建字符串列表的步骤为:
2. 在主窗体的OnCreate
3. 在创建事件句柄后,创建字符串列表对象;4. 在主窗体的OnDestroy
这样,在程序运行过程中,任何过程、事件均能访问该字符串列表。
以下代码在程序中加入了一个Clicklist的字符串列表,用户每按一次鼠标键,程序往Clicklist
unit Unit1;
interface
uses WinTYpes, WinProcs, Classes, Graphics, Forms, Controls, Apps;
type
TForm1 = 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
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
ClickList := TStringList.Create; {construct the list}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ClickList.SaveToFile(ChangeFileExt(Application.ExeName, '.LOG'));
{save the list}
ClickList.Free; {destroy the list object}
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ClickList.Add(Format('Click at (%d, %d)', [X, Y])); {add a
string to the list}
end;
end.
很多情况需要对表中的每一个字符串进行操作,如改变字符串的大小写。象这种重复操作可以用
以下代码对列表框的字符串进行重复操作。当用户按下按钮时,对列表框中的字符串进行大小写转换。
有两种方式往列表中加入字符串:可把字符串加到列表的最后,也可插入列表之中。
要把字符串加至列表尾部,使用
要把字符串插入列表中,使用
例如,要把“
●
●
●
●
- Delphi快速入门(五)
- VS.NET2005 Beta2初体验之感受2005
- Oracle:PL/SQL 中如何使用Array
- 将视频演示作为应用程序的启动封面
- Oracle数据库密码文件的使用与维护
- 论《金瓶梅》与项目管理中人际关系协调
- 全面剖析Delphi 2006新增特性
- Oracle平台应用数据库系统的设计与开发
- 五天实现CSDN新闻MIS系统开发手记
- Delphi字符串列表及应用(二)
- 1.全面剖析Delphi 2006新增特性
- 2.用Delphi开发视频聊天软件
- 3.用Win32 API枚举应用程序窗口和进程
- 4.软件的架构与设计模式之什么是架构
- 5.软件的架构与设计模式之模式的种类
- 6.Delphi中为TreeView添加单选和复选框
- 7.用Delphi实现24位真彩色图标
- 8.VS.NET2005 Beta2初体验之感受2005
- 9.程序界面设计模式慨述
- 10.没落的奇迹 谁会买下Delphi?
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
