下载本文示例代码
p> 作为Windows下可视化RAD工具的杰出代表,Delphi
的最新版本——BorlandDelphi4在Delphi3的基础上,又增加了许多新功能、新特性乃
至新语法、新单元——如动态数组、方法重载、默认参数等,从而为编程人员提供了更强劲、
更方便的开发工具和环境。其中,动态数组的引入更是一个让人盼望已久的变化。
一、动态数组(DynamicArrays)简介:
在传统Pascal语言或Delphi先前版本所使用的Object
Pascal语言中,数组指的是一组类型相同、带下标的又序的变量,是预先分配好的一块固
定大小的存储单元,其语法如下:
type
$#@60;数组类型名$#@62;=array[下标1..下标2]of$#@60;基类型$#@62;;
var
$#@60;数组变量名$#@62;:$#@60;数组类型名$#@62;;
或
var
$#@60;数组变量名$#@62;:array[下标1..下标2]of$#@60;基类型$#@62;
由传统数组的定义可知:传统数组的范围大小取
决于在使用它之前即已定义下的下标1和下标2这两个值。数组变量的下标决不能超出这个
范围。因此,传统数组是一种静态的数据结构,它无法在程序运行中动态地改变其容纳能力,
应用范围无疑也受到了很大的局限性。
Borland公司(现在的Inprise公司)对这种“静态”
的数组的改造工作一直在进行着,先后引入了String、PChar两个字符串大类来解决字符数
组的问题——消灭了程序中笨拙的array[N1..N2]ofchar和packedarray[N1..N2]of
char语句。这一次,终于在BorlandDelphi4中将数组正式划分为静态数组(StaticArrays)
和动态数组(DynamicArrays)两大类,以求通过后者来解决传统数组的痼疾。
动态数组的语法很简单:
var
$#@60;数组变量名$#@62;:=arrayof$#@60;基类型$#@62;
.
.
.
下面就以一个实际例子来说明一下动态数组的应
用和使用方法。
二、使用动态数组实现“模糊查询”实例
在一些数据库中,往往需要根据标题或文件名中
的某个关键字(或词)来实现“模糊查询”,如有一个文件资料库,现要求查出所有文件名中
包含“简报”两个字的文件,那么用FindKey()、GotoKey()等“精确制导”的方式自然不行,而Set ge
和Filter语句在关键字(或词)出现在字符串首部时倒能一用,对于出现在中间或末尾时的
情况却无能为力。显然,单纯依靠检索函数或过程来一次性完成这类查询工作是不行的。
通过对问题的观察可知,“模糊查询”所操作的对
象是字符串(String或PChar),给出的关键字(或词)是可能出现在各字符串中的子串,要确
定在字符串中是否包含给出的子串,Delphi提供了两个函数:Pos(sub_s:String,s:String)
适用于String类型和StrPos(sub_p:PChar,p:PChar)——适用于PChar类型,若在目标
串中含有给出的子串,则返回值为子串所在位置,否则为0。因此,要实现记录的“模糊查询”,
只需将关键字(或词)作为子串,将数据库中对应的字段内容作为主串,然后做Pos或StrPos
运算即可。
但比较后的结果放在哪呢?由于数据库的记录个
数通常是变化着的,而每次查询的结果又未必相同,因此,势必要求以一个动态的数据结构
来存储查询结果。若使用指针型记录,则不但存储时较麻烦,而且查看检索结果也复杂得很。
引入动态数组后就显得轻松多了,只需对数据库进行一次遍历,就实现各种要求了。
具体操作说明如下:
1、操作对象:
......
2、查询要求:输入一个关键字(或词),要求在“AREA”
字段中查找,将包含有该关键字(或词)的所在记录找出并返回结果(记录数),通过导航条
来显示命中记录。
3、Form及主要构件属性的设定:
......
4、编写各事件:
......
5、运行结果:
在编辑框中输入任意字符或字符串,然后单击“开
始查找”按钮,程序查找完毕后将在编辑框下显示命中记录的条数,通过单击“开始查找”按
钮下的导航条可显示具体的命中记录。[见图示]例)输入“美洲”,单击“开始查找”。显示查
找结果为“符合要求的有3条记录”。单击导航条四个按钮,可进行命中记录向上、向下的逐
条显示,并会自动提示是否已显示完毕。
本例所介绍的方法亦适用于其他类型和语言的数
据库。
总之,Delphi4中的动态数组在处理一些变化的、
类型较简单的数据时,是指针类型的良好代替者。若使用得当,将会给编程带来格外的方便。
p> 作为Windows下可视化RAD工具的杰出代表,Delphi
的最新版本——BorlandDelphi4在Delphi3的基础上,又增加了许多新功能、新特性乃
至新语法、新单元——如动态数组、方法重载、默认参数等,从而为编程人员提供了更强劲、
更方便的开发工具和环境。其中,动态数组的引入更是一个让人盼望已久的变化。
一、动态数组(DynamicArrays)简介:
在传统Pascal语言或Delphi先前版本所使用的Object
Pascal语言中,数组指的是一组类型相同、带下标的又序的变量,是预先分配好的一块固
定大小的存储单元,其语法如下:
type
$#@60;数组类型名$#@62;=array[下标1..下标2]of$#@60;基类型$#@62;;
var
$#@60;数组变量名$#@62;:$#@60;数组类型名$#@62;;
或
var
$#@60;数组变量名$#@62;:array[下标1..下标2]of$#@60;基类型$#@62;
由传统数组的定义可知:传统数组的范围大小取
决于在使用它之前即已定义下的下标1和下标2这两个值。数组变量的下标决不能超出这个
范围。因此,传统数组是一种静态的数据结构,它无法在程序运行中动态地改变其容纳能力,
应用范围无疑也受到了很大的局限性。
Borland公司(现在的Inprise公司)对这种“静态”
的数组的改造工作一直在进行着,先后引入了String、PChar两个字符串大类来解决字符数
组的问题——消灭了程序中笨拙的array[N1..N2]ofchar和packedarray[N1..N2]of
char语句。这一次,终于在BorlandDelphi4中将数组正式划分为静态数组(StaticArrays)
和动态数组(DynamicArrays)两大类,以求通过后者来解决传统数组的痼疾。
动态数组的语法很简单:
var
$#@60;数组变量名$#@62;:=arrayof$#@60;基类型$#@62;
.
.
.
下面就以一个实际例子来说明一下动态数组的应
用和使用方法。
二、使用动态数组实现“模糊查询”实例
在一些数据库中,往往需要根据标题或文件名中
的某个关键字(或词)来实现“模糊查询”,如有一个文件资料库,现要求查出所有文件名中
包含“简报”两个字的文件,那么用FindKey()、GotoKey()等“精确制导”的方式自然不行,而Set ge
和Filter语句在关键字(或词)出现在字符串首部时倒能一用,对于出现在中间或末尾时的
情况却无能为力。显然,单纯依靠检索函数或过程来一次性完成这类查询工作是不行的。
通过对问题的观察可知,“模糊查询”所操作的对
象是字符串(String或PChar),给出的关键字(或词)是可能出现在各字符串中的子串,要确
定在字符串中是否包含给出的子串,Delphi提供了两个函数:Pos(sub_s:String,s:String)
适用于String类型和StrPos(sub_p:PChar,p:PChar)——适用于PChar类型,若在目标
串中含有给出的子串,则返回值为子串所在位置,否则为0。因此,要实现记录的“模糊查询”,
只需将关键字(或词)作为子串,将数据库中对应的字段内容作为主串,然后做Pos或StrPos
运算即可。
但比较后的结果放在哪呢?由于数据库的记录个
数通常是变化着的,而每次查询的结果又未必相同,因此,势必要求以一个动态的数据结构
来存储查询结果。若使用指针型记录,则不但存储时较麻烦,而且查看检索结果也复杂得很。
引入动态数组后就显得轻松多了,只需对数据库进行一次遍历,就实现各种要求了。
具体操作说明如下:
1、操作对象:
......
2、查询要求:输入一个关键字(或词),要求在“AREA”
字段中查找,将包含有该关键字(或词)的所在记录找出并返回结果(记录数),通过导航条
来显示命中记录。
3、Form及主要构件属性的设定:
......
4、编写各事件:
......
5、运行结果:
在编辑框中输入任意字符或字符串,然后单击“开
始查找”按钮,程序查找完毕后将在编辑框下显示命中记录的条数,通过单击“开始查找”按
钮下的导航条可显示具体的命中记录。[见图示]例)输入“美洲”,单击“开始查找”。显示查
找结果为“符合要求的有3条记录”。单击导航条四个按钮,可进行命中记录向上、向下的逐
条显示,并会自动提示是否已显示完毕。
本例所介绍的方法亦适用于其他类型和语言的数
据库。
总之,Delphi4中的动态数组在处理一些变化的、
类型较简单的数据时,是指针类型的良好代替者。若使用得当,将会给编程带来格外的方便。
下载本文示例代码
从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态从 实 例 看 Delphi 4 中 的 动 态
阅读(118) | 评论(0) | 转发(0) |