📄 从 实 例 看 delphi 4 中 的 动 态 数 组.htm
字号:
<html>
<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>计算机世界日报:
从实例看 Delphi 4中的动态数组
</title>
<!--***********-->
</head>
<body bgcolor="#FFFFFF" >
<p><br>
<font color="#b904e8"><b><em><a href="class.htm">返回</a></em></b></font>
<center>
<font color="#0000c0"><h2>
从 实 例 看 Delphi 4 中 的 动 态 数 组
</h2></font>
<h3>
叶 立 文
</h3>
</center>
<p><font color="#ffffff">----</font>
[ 本 文 为 摘 略,<a href="041608-05.zip"> 全 文 可 下 载</a>,Zip 108KB]
<p><font color="#ffffff">----</font>
作 为Windows 下 可 视 化RAD 工 具 的 杰 出 代 表,Delphi 的 最 新 版 本 — —Borland Delphi 4 在Delphi 3 的 基 础 上, 又 增 加 了 许 多 新 功 能、 新 特 性 乃 至 新 语 法、 新 单 元 — — 如 动 态 数 组、 方 法 重 载、 默 认 参 数 等, 从 而 为 编 程 人 员 提 供 了 更 强 劲、 更 方 便 的 开 发 工 具 和 环 境。 其 中, 动 态 数 组 的 引 入 更 是 一 个 让 人 盼 望 已 久 的 变 化。
<p><font color="#ffffff">----</font>
<b>一、 动 态 数 组(Dynamic Arrays) 简 介:</b>
<p><font color="#ffffff">----</font>
在 传 统Pascal 语 言 或Delphi 先 前 版 本 所 使 用 的Object Pascal 语 言 中, 数 组 指 的 是 一 组 类 型 相 同、 带 下 标 的 又 序 的 变 量, 是 预 先 分 配 好 的 一 块 固 定 大 小 的 存 储 单 元, 其 语 法 如 下:
<pre>
type
< 数组类型名 >=array [下标1..下标2] of < 基类型 >;
var
< 数组变量名 >:< 数组类型名 >;
或
var
< 数组变量名 >:array [下标1..下标2] of < 基类型 >
</pre>
<p><font color="#ffffff">----</font>
由 传 统 数 组 的 定 义 可 知: 传 统 数 组 的 范 围 大 小 取 决 于 在 使 用 它 之 前 即 已 定 义 下 的 下 标1 和 下 标2 这 两 个 值。 数 组 变 量 的 下 标 决 不 能 超 出 这 个 范 围。 因 此, 传 统 数 组 是 一 种 静 态 的 数 据 结 构, 它 无 法 在 程 序 运 行 中 动 态 地 改 变 其 容 纳 能 力, 应 用 范 围 无 疑 也 受 到 了 很 大 的 局 限 性。
<p><font color="#ffffff">----</font>
Borland 公 司( 现 在 的Inprise 公 司) 对 这 种“ 静 态” 的 数 组 的 改 造 工 作 一 直 在 进 行 着, 先 后 引 入 了String、PChar 两 个 字 符 串 大 类 来 解 决 字 符 数 组 的 问 题 — — 消 灭 了 程 序 中 笨 拙 的array [N1..N2] of char 和packed array [N1..N2] of char 语 句。 这 一 次, 终 于 在Borland Delphi 4 中 将 数 组 正 式 划 分 为 静 态 数 组(Static Arrays) 和 动 态 数 组(Dynamic Arrays) 两 大 类, 以 求 通 过 后 者 来 解 决 传 统 数 组 的 痼 疾。
<p><font color="#ffffff">----</font>
动 态 数 组 的 语 法 很 简 单:
<pre>
var
< 数组变量名 >:=array of < 基类型 >
.
.
.
</pre>
<p><font color="#ffffff">----</font>
下 面 就 以 一 个 实 际 例 子 来 说 明 一 下 动 态 数 组 的 应 用 和 使 用 方 法。
<p><font color="#ffffff">----</font>
<b> 二、 使 用 动 态 数 组 实 现“ 模 糊 查 询” 实 例</b>
<p><font color="#ffffff">----</font>
在 一 些 数 据 库 中, 往 往 需 要 根 据 标 题 或 文 件 名 中 的 某 个 关 键 字( 或 词) 来 实 现“ 模 糊 查 询”, 如 有 一 个 文 件 资 料 库, 现 要 求 查 出 所 有 文 件 名 中 包 含“ 简 报” 两 个 字 的 文 件, 那 么 用FindKey()、GotoKey() 等“ 精 确 制 导” 的 方 式 自 然 不 行, 而SetRange 和Filter 语 句 在 关 键 字( 或 词) 出 现 在 字 符 串 首 部 时 倒 能 一 用, 对 于 出 现 在 中 间 或 末 尾 时 的 情 况 却 无 能 为 力。 显 然, 单 纯 依 靠 检 索 函 数 或 过 程 来 一 次 性 完 成 这 类 查 询 工 作 是 不 行 的。
<p><font color="#ffffff">----</font>
通 过 对 问 题 的 观 察 可 知,“ 模 糊 查 询” 所 操 作 的 对 象 是 字 符 串(String 或PChar), 给 出 的 关 键 字( 或 词) 是 可 能 出 现 在 各 字 符 串 中 的 子 串, 要 确 定 在 字 符 串 中 是 否 包 含 给 出 的 子 串,Delphi 提 供 了 两 个 函 数:Pos(sub_s:String , s:String) — — 适 用 于String 类 型 和StrPos(sub_p:PChar,p:PChar) — — 适 用 于PChar 类 型, 若 在 目 标 串 中 含 有 给 出 的 子 串, 则 返 回 值 为 子 串 所 在 位 置, 否 则 为0。 因 此, 要 实 现 记 录 的“ 模 糊 查 询”, 只 需 将 关 键 字( 或 词) 作 为 子 串, 将 数 据 库 中 对 应 的 字 段 内 容 作 为 主 串, 然 后 做Pos 或StrPos 运 算 即 可。
<p><font color="#ffffff">----</font>
但 比 较 后 的 结 果 放 在 哪 呢 ? 由 于 数 据 库 的 记 录 个 数 通 常 是 变 化 着 的, 而 每 次 查 询 的 结 果 又 未 必 相 同, 因 此, 势 必 要 求 以 一 个 动 态 的 数 据 结 构 来 存 储 查 询 结 果。 若 使 用 指 针 型 记 录, 则 不 但 存 储 时 较 麻 烦, 而 且 查 看 检 索 结 果 也 复 杂 得 很。 引 入 动 态 数 组 后 就 显 得 轻 松 多 了, 只 需 对 数 据 库 进 行 一 次 遍 历, 就 实 现 各 种 要 求 了。
<p><font color="#ffffff">----</font>
具 体 操 作 说 明 如 下:
<p><font color="#ffffff">----</font>
1、 操 作 对 象:
<pre>
... ...
</pre>
<p><font color="#ffffff">----</font>
2、 查 询 要 求: 输 入 一 个 关 键 字( 或 词), 要 求 在“AREA” 字 段 中 查 找, 将 包 含 有 该 关 键 字( 或 词) 的 所 在 记 录 找 出 并 返 回 结 果( 记 录 数), 通 过 导 航 条 来 显 示 命 中 记 录。
<p><font color="#ffffff">----</font>
3、 Form 及 主 要 构 件 属 性 的 设 定:
<pre>
... ...
</pre>
<p><font color="#ffffff">----</font>
4、 编 写 各 事 件:
<pre>
... ...
</pre>
<p><font color="#ffffff">----</font>
5、 运 行 结 果:
<p><font color="#ffffff">----</font>
在 编 辑 框 中 输 入 任 意 字 符 或 字 符 串, 然 后 单 击“ 开 始 查 找” 按 钮, 程 序 查 找 完 毕 后 将 在 编 辑 框 下 显 示 命 中 记 录 的 条 数, 通 过 单 击“ 开 始 查 找” 按 钮 下 的 导 航 条 可 显 示 具 体 的 命 中 记 录。[ 见 图 示] 例) 输 入“ 美 洲”, 单 击“ 开 始 查 找”。 显 示 查 找 结 果 为“ 符 合 要 求 的 有3 条 记 录”。 单 击 导 航 条 四 个 按 钮, 可 进 行 命 中 记 录 向 上、 向 下 的 逐 条 显 示, 并 会 自 动 提 示 是 否 已 显 示 完 毕。
<p><font color="#ffffff">----</font>
本 例 所 介 绍 的 方 法 亦 适 用 于 其 他 类 型 和 语 言 的 数 据 库。
<p><font color="#ffffff">----</font>
总 之,Delphi 4 中 的 动 态 数 组 在 处 理 一 些 变 化 的、 类 型 较 简 单 的 数 据 时, 是 指 针 类 型 的 良 好 代 替 者。 若 使 用 得 当, 将 会 给 编 程 带 来 格 外 的 方 便。
<p align="right"><small><em>中国计算机世界出版服务公司版权所有</em></small>
<br>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -