资源描述
第 2章 Visual FoxPro中 的 数 据与 运 算 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院本 章 要 点2.1 Visual FoxPro的 数 据 类 型 2.2 Visual FoxPro的 常 量 与 变 量 2.3 Visual FoxPro的 函 数 2.4 Visual FoxPro的 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院2.1 Visual FoxPro中 的 数 据 类 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 字 符 型 ( Character) 数 据 是 不 具 计 算 能力 的 文 字 数 据 类 型 , 用 字 母 C表 示 。 字 符 型 数 据 包 括 中 文 字 符 、 英 文 字 符 、 数字 字 符 和 其 他 ASCII字 符 , 其 长 度 ( 即 字符 个 数 ) 范 围 是 0 254个 字 符 。 注 意 : 如 果 将 阿 拉 伯 数 字 定 义 为 字 符 型 数据 时 , 它 不 具 备 数 学 上 的 数 值 含 义 , 不 能参 加 数 学 运 算 , 如 电 话 号 码 , 邮 编 等 。2.1.1 字 符 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院数 值 型 数 据 由 数 字 、 小 数 点 、 正 负 号 和 表 示乘 幂 的 字 母 E组 成 , 数 值 精 度 达 16位 。 1 数 值 型 数 值 型 ( Numeric) 数 据 由 数 字 、 小 数点 、 正 负 号 和 字 母 E组 成 , 用 字 母 N表 示 。 通常 用 于 表 示 实 数 。 如 23, -103.45, 1.3E-5( 即 1.3 10-5)等 ; 2.1.2 数 值 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 2 浮 点 型 浮 点 型 ( Float) 数 据 是 数 值 型 数 据 的 一 种 , 用 字母 F表 示 。 它 与 数 值 型 数 据 完 全 等 价 , 只 是 在 存 储 形 式上 采 用 浮 点 格 式 , 主 要 是 为 了 得 到 较 高 的 计 算 精 度 。 3 双 精 度 型 双 精 度 型 ( Double) 数 据 是 具 有 更 高 精 度 的 一 种 数值 型 数 据 , 用 字 母 B表 示 。 它 采 用 固 定 长 度 浮 点 格 式 存储 , 占 用 8个 字 节 4 整 型 整 型 ( Integer) 数 据 是 不 包 含 小 数 部 分 的 数 值 型 数 据 , 用 字 母 I表 示 。 整 型 数 据 只 用 来 表 示 整 数 , 以 二进 制 形 式 存 储 , 占 用 4个 字 节 。2.1.2 数 值 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 日 期 型 ( Date) 数 据 是 表 示 日 期 的 数 据 ,用 字 母 D表 示 。 日 期 的 默 认 格 式 是 mm/dd/yyyy, 其 中mm表 示 月 份 , dd表 示 日 期 , yyyy表 示 年 度 ,固 定 长 度 8位 。 有 效 的 日 期 型 和 日 期 时 间 型 数 据 分 隔 符 为 :连 字 符 -” 、 正 斜 杠 /” 、 句 点 .” 和 空格 。 如 09/16/2002表 示 2002年 9月 16日 。2.1.3 日 期 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 日 期 时 间 型 ( Date Times) 数 据 是 表 示 日 期 和 时间 的 数 据 , 用 字 母 T表 示 。 日 期 时 间 的 默 认 格 式 是 mm/dd/yyyy hh:mm:ss,其 中 mm、 dd、 yyyy的 意 义 与 日 期 型 相 同 , 而 hh表 示 小 时 , mm表 示 分 钟 , ss表 示 秒 数 。 日 期 时 间 型 数 据 也 是 采 用 固 定 长 度 8位 。如 10/01/2002 10:30:30表 示 2002年 10月 1日 10时 30分 30秒 。 2.1.4 日 期 时 间 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 逻 辑 型 ( Logic) 数 据 是 描 述 客 观 事 物 真假 的 数 据 类 型 , 表 示 逻 辑 判 断 的 结 果 ,用 字 母 L表 示 。 逻 辑 型 数 据 只 有 真 ( .t.或 .y.) 和 假( .f.或 .n.) 两 种 , 固 定 长 度 1位 。 为 区 别 其 他 数 据 类 型 , 一 般 需 在 表 示 逻辑 值 的 字 母 t、 y、 f、 n的 前 后 加 圆 点 符.” 。 2.1.5 逻 辑 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 备 注 型 ( Memo) 数 据 是 表 示 、 存 放 较 多 字 符的 数 据 类 型 。 可 以 把 它 看 成 是 字 符 型 数 据 的特 殊 形 式 , 用 字 母 M表 示 。 备 注 型 数 据 没 有 数 据 长 度 限 制 , 仅 受 限 于 磁盘 空 间 。 它 只 用 于 表 中 字 段 类 型 的 定 义 , 字段 长 度 固 定 为 4位 , 实 际 数 据 存 放 在 与 表 文 件同 名 的 备 注 文 件 ( .FPT) 中 , 长 度 根 据 数 据的 内 容 而 定 。2.1.6 备 注 型 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院2.1.7 通 用 型 通 用 型 ( General) 数 据 是 存 储 OLE( 对 象链 接 嵌 入 ) 对 象 的 数 据 类 型 , 用 字 母 G表 示 。 通用 型 数 据 中 的 OLE对 象 可 以 是 电 子 表 格 、 文 档 、图 形 图 片 等 。 它 只 用 于 表 中 字 段 类 型 的 定 义 。 通用 型 数 据 字 段 长 度 固 定 为 4位 , 实 际 数 据 长 度 仅受 限 于 磁 盘 空 间 。2.1.8 货 币 型 货 币 型 ( Currency) 数 据 是 为 存 储 美 元 金 额而 使 用 的 一 种 称 为 货 币 (Currency)的 数 据 类 型 ,其 取 值 范 围 是 : -922337203685477.5808 922337203685477.5807, 默 认 保 留 4位 小 数 , 占据 8字 节 存 储 空 间 。 货 币 型 数 据 用 字 母 Y表 示 。 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 2.1.9 二 进 制 字 符 型 和 二 进 制 备 注 型 这 两 类 数 据 是 以 二 进 制 格 式 存 储 的 数 据 类 型 ,只 能 用 在 表 中 字 段 数 据 的 定 义 。 所 存 储 的 数 据 不 受代 码 页 改 变 的 影 响 。 2.1.10 数 据 类 型 的 应 用 范 围 以 上 数 据 类 型 均 可 应 用 于 表 中 字 段 数 据 类 型 的定 义 , 但 其 中 双 精 度 型 、 浮 点 型 、 通 用 型 、 整 型 、备 注 型 、 二 进 制 字 符 型 和 二 进 制 备 注 型 只 能 应 用 于字 段 , 其 余 则 可 以 用 于 变 量 、 数 组 和 字 段 。 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院( 1) 字 符 型 常 量 : 用 定 界 符 ( 单 引 号 、 双 引 号 和 方 括 号 ) 括 起 来的 字 符 串 。 (示 例 : ade 568 book book的 中 文 意 思 是 书 。 )( 2) 数 值 型 常 量 ( 示 例 : 538,-10.5 )( 3) 浮 点 型 常 量 ( 示 例 : -1.05E+20 )( 4) 逻 辑 型 常 量 ( 示 例 : .t. .T. .f. .F. .Y. .N. .y. .n.)( 5) 日 期 时 间 型 常 量 ( 示 例 : 05/16/99 12:00:00) ( 6) 日 期 型 常 量 : 表 示 一 个 确 切 的 日 期 , 用 大 括 号 作 为 定 界 符 ,默 认 格 式 为 mm/dd/yy。 示 例 : 05/23/99 严 格 的 日 期 格 式 : YYYY-MM-DD ( 示 例 : 2001-08-16)2.2.1 常 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院1. 日 期 常 量 常 用 的 系 统 输 出 格 式 : mm/dd/yy2. 日 期 常 量 常 用 的 系 统 输 入 格 式 : yyyy/mm/dd SET DATE TO AMERICAN/MDY/DMY/YMD SET CENTURY ON/OFF :显 示 的 日 期 中 年 份 用 4/2位 SET MARK TO : 指 定 显 示 的 日 期 中 的 分 界 符 SET STRICTDATE TO 0|1|2 关 开 严 格 的 日 期 检 测例 如 : * 注 意 显 示 的 日 期 格 式?2008/9/3SET CENTURY ON?2008/9/3SET DATE TO YMD ?2008/9/3日 期 型 常 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 变 量 是 在 操 作 过 程 中 可 以 改 变 其 取 值 或 数据 类 型 的 数 据 项 。 在 Visual FoxPro系 统 中 变 量 分 为 字 段 变量 、 内 存 变 量 、 数 组 变 量 和 系 统 变 量 4类 。 确 定 一 个 变 量 , 需 要 确 定 其 三 个 要 素 : 变量 名 、 数 据 类 型 和 变 量 值 。2.2.2 变 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院1.变 量 名 : 变 量 名 由 字 母 、 汉 字 、 数 字 和 下 划 线 组 成 , 但必 须 以 字 母 或 汉 字 开 头 , 中 间 不 能 有 空 格 。如 : 年 龄 , nl,A_2是 合 法 的 变 量 名 2A, A 2是 不 合 法 的 变 量 名2.建 立 内 存 变 量( 1) 直 接 赋 值 C=中 国 KDATE=2002/01/02 婚 否 =.T. 练 习 2: R=3 S=3.14*R*R ?S=,S练 习 1: A=1 A=A+1 ?A2.2.2 变 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院( 2) STORE命 令STORE TO 例 如 : STORE 0 TO A,B,C,D 优 点 : 同 时 给 多 个 变 量 赋 相 同 的 值 练 习 3: 交 换 两 个 变 量 的 值X=3Y=4 ?X=, X, Y=, Y Temp=XX=YY=Temp?X=, X, Y=, Y4x 3y3x 4y2.建 立 内 存 变 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院内 存 变 量 与 常 量 比 较?中 国 中 国 =china?中 国 ,中 国?2008-1-1?1e3d=2008-1-1?d+1 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院内 存 变 量 与 字 段 变 量 如 果 内 存 变 量 与 数 据 表 中 的 字 段 变 量 同 名时 , 用 户 在 引 用 内 存 变 量 时 , 要 在 其 名 字前 加 一 个 m.或 ( m-) 。姓 名 =张 三 ?姓 名USE STUD?姓 名姓 名 =李 四 ?姓 名?m.姓 名 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院命 令 格 式 : ? | ? ? AT 命 令 功 能 : 计 算 表 达 式 表 中 各 表 达 式 的 值 , 并在 屏 幕 上 指 定 位 置 显 示 输 出 各 式 的 值 。 ? : 先 回 车 换 行 , 再 计 算 并 输 出 表 达 式 的 值 ; ? ? : 在 屏 幕 上 当 前 位 置 , 计 算 并 直 接 输 出 表达 式 的 值 ; : 多 个 以 逗 号 两 两 分 隔 的 表 达 式 ,各 表 达 式 的 值 输 出 时 , 以 空 格 分 隔 ; AT 子 句 指 定 表 达 式 值 从 指 定 列 开 始 显示 输 出 。 ( 3) 内 存 变 量 的 显 示 输 出 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院格 式 : LIST / DISPLAY MEMORY LIKE 说 明 : LIST和 DISPLAY区 别 为 : LIST连 续 显 示 ; DISPLAY分 页 显 示 。( 4) 显 示 和 打 印 全 部 内 存 变 量示 例 : A=中 国 ” A1=5LIST MEMORY LIKE A* VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院格 式 : SAVE TO /TO MEMO ALL LIKE/ALL EXCEPT 说 明 : 内 存 变 量 文 件 的 扩 展 名 为 .MEM示 例 : SAVE TO AA SAVE TO MM ALL LIKE X* SAVE TO BB ALL EXCEPT ?Y( 5) 建 立 内 存 变 量 文 件 保 存 变 量( 6) 内 存 变 量 文 件 的 调 入格 式 : RESTORE FROM /FROM MEMO ADDITIVE 示 例 : RESTORE FROM MM RESTORE FROM BB ADDITIVE VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院格 式 : RELEASE 或 RELEASE ALL LIKE /EXCEPT 或 CLEAR MEMORY或 CLEAR ALL说 明 : 释 放 指 定 的 内 存 变 量 , 但 不 清 除 系 统 内 存 变 量 ; CLEAR ALL在 关 闭 所 有 表 文 件 的 同 时 清 除 所 有 的 内 存变 量 。示 例 : RELEASE ALL RELEASE X,Y,Z RELEASE ALL LIKE A*( 7) 释 放 内 存 变 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院定 义 命 令 格 式 : DIMENSION/DECLARE ( ,) ,( ,)示 例 : DIMENSION AB(3),C2,3赋 值数 组 元 素 的 赋 值 与 普 通 内 存 变 量 一 样 , 可 以 通 过 STORE命 令 或 =”来 实 现 。示 例 : 给 二 维 数 组 X和 一 维 数 组 Y进 行 赋 值 。 DIMENSION X(3,4),Y(3) STORE 5 TO X Y(1)=325 Y(2)=ABC” Y(3)=.T. X(2)=2005/3/314.数 组 变 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 系 统 变 量 是 Visual FoxPro系 统 特 有 的 内存 变 量 , 它 由 Visual FoxPro系 统 定 义 、 维 护 。系 统 变 量 有 很 多 , 其 变 量 名 均 以 下 划 线 _”开 始 。5 系 统 变 量 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院2.3 Visual FoxPro的 函 数按 函 数 提 供 方 式 , 可 分 为 系 统 ( 标准 ) 函 数 和 用 户 自 定 义 函 数按 函 数 运 算 、 处 理 对 象 和 结 果 的 数据 类 型 , 可 分 为 数 值 型 函 数 、 字 符型 函 数 、 逻 辑 型 函 数 、 日 期 时 间 型函 数 、 数 据 转 换 函 数 等 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院数 值 函 数 名 功 能 说 明ABS() 绝 对 值 返 回 X的 绝 对 值SIGN() 符 号 函 数 当 X为 正 数 、 负 数 和 0时 返 回 1、 -1、 0SQRT() 平 方 根 返 回 X的 平 方 根PI() 圆 周 率 没 有 自 变 量 , 直 接 返 回 圆 周 率INT() 求 整 数 返 回 X的 整 数 部 分CEILING() 求 整 数 返 回 大 于 等 于 X的 最 小 整 数FLOOR() 求 整 数 返 回 小 于 等 于 X的 最 大 整 数 ROUND(,) 四 舍 五 入 由 Y指 定 X的 舍 入 时 小 数 点 后 的 位 数 ,返 回 X的 四 舍 五 入 的 结 果 。MOD(,) 求 余 数 返 回 X除 以 Y时 的 余 数MAX(,.) 最 大 值 返 回 所 有 自 变 量 中 的 最 大 值MIN(,.) 最 小 值 返 回 所 有 自 变 量 中 的 最 小 值 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院?abs(-3),abs(5),abs(0)?sign(-3),sign(5),sign(0)?sqrt(4),sqrt(abs(-81)?pi(),round(pi(),8)?int(5.7),int(-5.7)?ceiling(5.7),ceiling(-5.7)?floor(5.7),floor(-5.7)?round(3.678,2),round(-5.2345,3)?mod(5,3)?max(3,2,5,6),min(3,2,5,6)数 值 函 数 举 例?max(23, 5, 123) 5 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院函 数 名 功 能 说 明LEN() 字 符 串 长 度 返 回 X的 字 节 数 .字 符 占 1个 ,汉 字 占 2个LOWER() 转 换 为 小 写 返 回 X所 有 英 文 字 符 转 换 为 小 写 的 字 符 串UPPER() 转 换 为 大 写 返 回 X所 有 英 文 字 符 转 换 为 大 写 的 字 符 串SPACE() 空 格 字 符 串 返 回 Y个 空 格 的 空 格 字 符 串TRIM() 压 缩 尾 部 空 格 返 回 去 掉 X尾 部 空 格 的 字 符 串LTRIM() 压 缩 前 导 空 格 返 回 去 掉 X左 部 空 格 的 字 符 串ALLTRIM() 压 缩 头 尾 空 格 返 回 去 掉 X头 尾 空 格 的 字 符 串LEFT(,) 取 左 子 串 返 回 X从 左 部 开 始 的 Y个 字 符 的 字 符 串RIGHT(,) 取 右 子 串 返 回 X从 右 部 开 始 的 Y个 字 符 的 字 符 串SUBSTR(,) 取 子 串 返 回 X从 中 间 Y1位 置 开 始 的 Y2个 字 符 的 字 符 串 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院AT(,) 子 串 位 置 返 回 X1在 X2中 第 Y次 出 现 的 首 字 符 位 置 ,区 分 大 小 写 STUFF(,) 子 串 替 换 返 回 用 X2替 换 X1中 从 Y1位 置 开 始 的 Y2个 字 符CHRTRAN(,) 字 符 替 换 返 回 所 有 X2在 X1中 的 内 容 被 X3替 换 后 的 字 符 串LIKE(,) 字 符 串 匹 配 返 回 X2是 否 和 X1对 应 位 置 上 的 内 容 匹 配 ,X1可 以 含 通 配 符函 数 名 功 能 说 明注 : X1,X2,X3均 为 字 符 串 表 达 式 , Y1,Y2均 为 数 值 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院?Len(Visual FoxPro中 文 版 )?Lower(Visual FoxPro)?Upper(Visual FoxPro)?aaa+space(2)+bbb ?bbb+trim( aaa aaa )+bbb?bbb+ltrim( aaa aaa )+bbb?bbb+alltrim( aaa aaa )+bbb?Left(中 国 人 民 解 放 军 ,4) ?right(中 国 人 民 解 放 军 ,6) ?substr(中 国 人 民 解 放 军 ,5,4) ?at(a,aABCAa) 字 符 函 数 举 例 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院字 符 函 数 -&宏 替 换 函 数功 能 :替 换 出 字 符 型 变 量 中 的 字 符 。举 例 1: Hello= How are you?H= Hello?H? &H? H,&H 举 例 2: STORE stud TO DBUSE &DBXM=姓 名 ?&XM-你 好 Skip?XM,&XM等 价 于 ?Hello等 价 于 ?Hello VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院日 期 和 时 间 函 数 函 数 名 功 能 说 明DATE() 系 统 日 期 返 回 系 统 日 期TIME() 系 统 时 间 返 回 系 统 时 间DATETIME() 系 统 日 期 时 间 返 回 系 统 日 期 时 间YEAR() 年 份 返 回 X中 的 年 份MONTH() 月 份 返 回 X中 的 月 份DAY() 天 数 返 回 X中 月 份 里 的 天 数HOUR() 小 时 返 回 Y中 的 小 时 部 分 ( 24小 时 制 ) MINUTE() 分 钟 返 回 Y中 的 分 钟 部 分SEC() 秒 返 回 Y中 的 秒 钟 部 分注 : X为 日 期 型 表 达 式 或 日 期 时 间 型 表 达 式 , Y为 日期 时 间 型 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院日 期 和 时 间 函 数 举 例?date(),time()?datetime() ?year(date()?month(2008-8-18)?day(datetime()?hour(datetime()?minute(datetime()?sec(datetime() VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院数 据 类 型 转 换 函 数 函 数 名 功 能 说 明STR(Y,L,n) 数 值 转 换 为 字 符 串 将 Y转 换 为 长 度 为 L,小 数 点 后 n位 的 数 值 字 符 串VAL(X) 字 符 串 转 换 为 数 值 返 回 X从 左 开 始 的 数 字 字 符 串 转 换 为 数 值 的 结果CTOD(X) 字 符 串 转 换 为 日 期 将 X转 换 为 日 期 型 的 数 据 , 字 符 串 要 与 日 期 格式 一 致CTOT(X) 字 符 串 转 换 为日 期 时 间 将 X转 换 为 日 期 时 间 型 的 数 据 , 字 符 串 要 与 日期 格 式 一 致 注 : X为 字 符 串 表 达 式 , Y为 数 值 表 达 式 , D为 日 期 表 达 式 或 日 期 时 间表 达 式 , T为 日 期 时 间 表 达 式ASC(X) 返 回 串 首 字 符 的 ASCII码 值CHR(X) 返 回 ASCII码 为 X的 字 符DTOC(日 期 ) VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院?计 算 结 果 =+STR(10/3,5,3)STORE 1E3 TO C?3*VAL(C)?VAL(1.257)?VAL(1A.256)?VAL(A1.256)?ASC(A),ASC(a)?CHR(99),CHR(49)转 换 函 数 举 例 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院?ALLTRIM(学 号 )+的 成 绩 :+STR(成 绩 ,2)?今 天 是 :+DTOC(DATE() VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院函 数 名 功 能 说 明BETWEEN(X,Y,Z) 值 域 测 试 函 数 当 X的 值 大 于 等 于 Y并 且 小 于 等 于 Z,结 果 为 真 ;否 则 为 假 。 X、 Y、 Z可 以 是 字 符 型 、 日 期 型 、日 期 时 间 型 、 浮 点 型 、 整 形 、 双 精 度 型 或 货币 型 。 3个 自 变 量 类 型 必 须 一 致 。EOF(工 作 区 号 |表 别 名 ) 表 文 件 尾 测试 测 试 指 定 工 作 区 或 指 定 表 的 记 录 指 针 是 否 指 到文 件 尾 。 无 自 变 量 时 , 测 试 当 前 工 作 区BOF(工 作 区 号 |表 别 名 ) 表 文 件 首 测试 测 试 指 定 工 作 区 或 指 定 表 的 记 录 指 针 是 否 指到 文 件 头 。 无 自 变 量 时 , 测 试 当 前 工 作 区RECNO(工 作 区 号 |表 别 名 ) 记 录 号 测 试 返 回 指 定 工 作 区 或 指 定 表 的 记 录 指 针 指 向 的记 录 的 记 录 号 。 无 自 变 量 , 测 试 当 前 工 作 区RECCOUNT(工 作 区 号 |表别 名 ) 记 录 个 数 测试 返 回 指 定 工 作 区 或 指 定 表 的 记 录 的 记 录 个 数 。无 自 变 量 时 , 测 试 当 前 工 作 区IIF(L,X,Y) 条 件 测 试 当 L的 结 果 为 真 时 , 返 回 X,否 则 返 回 YDeleted() 测 试 当 前 记 录 是 否 被 逻 辑 删 除 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院文 件 头 :BOF() 记 录 号 :1记 录 1记 录 2记 录 3记 录 4记 录 5记 录 6文 件 尾 :EOF() 记 录 号 :7TOPBOTTOM如 果 是 空 表 呢 ? VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院use sc?recno(),reccount()?Eof(),bof() skip -1?bof()go bottom?eof()skip?eof()go 4 ?recno() ?iif(成 绩 =60,及 格 ,不 及 格 ) ?deleted()测 试 函 数 举 例 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院数 据 类 型 测 试 函 数 : VARTYPE(X) TYPE( 字 符 串 )功 能 : 测 试 表 达 式 X的 结 果 的 数 据 类 型 。 返 回 的 数 据 类 型由 字 符 表 示 , 如 下 表 : 返 回 的 字 符 数 据 类 型 返 回 的 字 符 数 据 类 型C 字 符 型 或 备 注 型 G 通 用 型N 数 值 型 、 整 型 、 浮 点 型 、 双 精 度 型 D 日 期 型Y 货 币 型 T 日 期 时 间 型L 逻 辑 型 X Null值O 对 象 型 U 未 定 义举 例 1: a=5 b=abc ?vartype(a),vartype(b) ?TYPE(A),TYPE(B) 举 例 2: K=AA=10?TYPE(K),TYPE(K)AA=-10?TYPE(K),TYPE(K) VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院2.4 Visual FoxPro的 表 达 式 表 达 式 是 由 常 量 、 变 量 、 函 数 及 其 他 数 据 容器 单 独 或 与 运 算 符 组 成 的 有 意 义 的 运 算 式 子 。 运 算 符 分 为 算 术 ( 数 值 ) 运 算 符 、 字 符 运 算符 、 日 期 时 间 运 算 符 、 逻 辑 运 算 符 和 关 系 运算 符 五 类 。 相 应 的 , 表 达 式 也 分 为 算 术 表 达 式 、 字 符 表达 式 、 日 期 时 间 表 达 式 、 逻 辑 表 达 式 和 关 系表 达 式 五 类 。 常 量 、 变 量 和 函 数 可 以 作 为 表 达 式 的 特例 。 今 后 涉 及 到 表 达 式 的 描 述 , 除 特 别 指 明 ,均 可 包 含 这 些 特 殊 的 形 式 。 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院算 术 表 达 式 又 称 数 值 表 达 式 , 其 运 算 对 象 和 运 算 结 果均 为 数 值 型 数 据 。 运 算 符 功 能 表 达 式 举 例 运 算 结果 优 先 级 别( ) 圆 括 号 (2-5)*(3+2) -15 最 高 | | | | 最 低- 取 相 反 数 -(3-8) 5*、 乘 幂 2*5、 32 32、 9*、 / 乘 、 除 2*10、 25/5 20、 5% 取 余 数 20%5 0+、 - 加 、 减 36+19、 29-47 55、 -182.4.1 算 术 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院练 习 1: 写 出 下 列 数 学 表 达 式 的 Visual FoxPro表 达 式1.2.3.4. 5. 6. (a+b)/(c-d)B2-4AC B*B-4*A*C 或 B2-4*A*C3sin30 +lg100 3*sin(3.14159*30/180)+log10(100)5x+2(y+z) 5*(x+2*(y+z)2 R 2*3.14159*Rdc ba557352 SQRT(52+73)/55) VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院将 数 学 表 达 式 转 换 成 数 值 表 达 式 时 , 应 注 意 以下 规 则 :( 1) 所 有 符 号 要 写 在 同 一 水 平 线 上 ;( 2) 所 有 运 算 符 不 能 省 略 ;( 3) 所 有 括 号 都 是 小 括 号 ;( 4) 三 角 函 数 的 单 位 是 弧 度 ;( 5) 注 意 运 算 符 的 优 先 级 。数 学 表 达 式 转 换 成 数 值 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 字 符 表 达 式 是 由 字 符 运 算 符 将 字 符 型 数 据 对 象连 接 起 来 进 行 运 算 的 式 子 。 2.4.2 字 符 表 达 式运 算 符 功 能 表 达 式 举 例 运 算 结 果+ 串 1+串 2: 两 串 顺 序 相 连 接 12 + 56 12 56- 串 1-串 2: 串 1尾 空 格 移 到串 2尾 后 再 顺 序 相 连 接 12 -56 1256 $ 串 1$串 2: 串 1是 否 为 串 2子串 1234 $ a12345 1234 $ 34512 .T.F. VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 2.4.3 日 期 时 间 表 达 式+: 加 运 算 。日 期 +数 值 , 结 果 为 其 后 多 少 天 的 日 期 。日 期 时 间 +数 值 , 结 果 为 其 后 多 少 秒 的 时 间 。日 期 +日 期 ()-: 减 运 算 。日 期 -数 值 , 结 果 为 其 前 多 少 天 的 日 期 。日 期 时 间 -数 值 , 结 果 为 其 前 多 少 秒 的 时 间 。 日 期 1-日 期 2, 结 果 为 日 期 相 差 的 天 数 。日 期 时 间 1-日 期 时 间 2, 结 果 为 日 期 时 间 相 差 的 秒 数 。 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院由 关 系 运 算 符 连 接 两 个 同 类 数 据 对 象 进 行 关系 比 较 的 运 算 式 称 为 关 系 表 达 式 。运 算 符 功 能 表 达 式 举 例 结 果 小 于 15 大 于 A 1 .T.= 等 于 2+4 = 3*5 .F.、 #、 != 不 等 于 5 -10 .T.= 小 于 或 等 于 abc = 大 于 或 等 于 10-10-02=10/01/02 .T.= 字 符 串 恒 同 abc = abcabc .F. 2.4.4 关 系 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 关 系 运 算 符 的 优 先 级 别 相 同 。 在 Visual FoxPro系 统 中 , 字 符 型 数 据 的 比较 相 对 复 杂字 符 串 是 按 照 ASCII码 值 的 大 小 进 行 比 较 ABCDABD 的 值 是 .F. 汉 字 按 照 拼 音 或 比 画 多 少 比 较关 系 运 算 符 注 意用 菜 单 设 置 汉 字 排 列 顺 序 方 式 的 操 作 步 骤 为 : 单击 【 工 具 】 |【 选 项 】 |【 数 据 】 |【 排 序 序 列 】下 拉 列 表 框 中 选 择 Stroke” 项 并 确 定 , 系 统 将按 汉 字 的 笔 画 数 进 行 汉 字 的 排 序 、 比 较 运 算 。 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 =”是 字 符 串 精 确 比 较 运 算 符 , 即 要 求 两 个 字符 串 必 须 完 全 匹 配 。字 符 串 比 较 中 还 要 注 意 =”和 =”的 使 用=”在 SET EXACT OFF 环 境 下 , 只 要 右 边 字 符 串 的 所 有 字 符比 较 完 后 , 还 未 发 现 不 相 同 的 字 符 , 则 认 为 =”号 两 边 的 字 符串 相 等 。 如 SET EXACT OFF ?ABCD=ABC得 到 的 结 果 是 .T. 而 在 SET EXACT ON环 境 下 , 则 要 求 精 确 匹 配 。 即 SET EXACT ON ?ABCD=ABC得 到 的 结 果 是 .F. use stud?姓 名 =李 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 由 逻 辑 运 算 将 逻 辑 型 数 据 对 象 连 接 而 成 的式 子 称 为 逻 辑 表 达 式 。 逻 辑 表 达 式 的 运 算对 象 与 运 算 结 果 均 为 逻 辑 型 数 据 。 逻 辑 运算 符 前 后 一 般 要 加 圆 点 .” 标 记 , 以 示 区别 。 运 算 符 功 能 优 先 级 别( ) 圆 括 号 最 高| 最 低.NOT.或 ! 逻 辑 非.AND. 逻 辑 与.OR. 逻 辑 或2.4.5 逻 辑 表 达 式 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 对 于 各 种 逻 辑 运 算 , 其 运 算 规 则 可 由 逻 辑运 算 真 值 表 确 定 , 表 2-6所 示 就 是 逻 辑 运 算 真 值表 。 表 2-6 逻 辑 运 算 真 值 表A B A .AND.B A .OR. B .NOT A.T. .T. .T. .T. .F.T. .F. .F. .T. .F.F. .T. .F. .T. .T.F. .F. .F. .F. .T. VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院 在 Visual FoxPro系 统 中 , 各 类 运 算 的 优 先 顺 序 如下 : 圆 括 号 算 术 和 日 期 运 算 字 符 串 运 算 关 系 运算 逻 辑 运 算 运 算 优 先 级?date()2006-12-31-100?34 OR 人 .F.?(13%3=1) AND (15%2=0) OR 电 脑 !=计 算 机 ? 计 算 机 电 脑 =计 算 机 VFP: Visual FoxPro中 的 数 据 与 运 算信 息 科 学 与 工 程 学 院举 例 显 示 STUD表 中 所 有 姓 “ 李 ” 的 同 学的 姓 名 、 学 号 、 班 级 名 。 显 示 STUD表 中 出 生 日 期 在 85年 和 86年 之 间 的 所 有 男 生 的 学 号 、 姓 名 use studdisp 姓 名 ,学 号 ,班 级 名 for 姓 名 =李 disp 学 号 ,姓 名 for 性 别 =男 and year(出 生日 期 )=1985 and year(出 生 日 期 )=1986
展开阅读全文