VFP课件(3-数据类型与数据运算)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2 变量

变量和常量都是Visual FoxPro中数据运算和 数据处理的基本对象,常量表示一个固定的值, 而变量的值是能随时改变的。
3.2.1 变量的基本概念
1.变量的命名规则

由字母、汉字、下划线和数字组成。例如#、$不能用 来组成变量。 以字母、汉字、下划线开头,不能以数字开头。如 1ac不能作为变量名。 不能使用系统保留字(系统中的命令)。例如,creat 为创建表的命令,不能作为变量名。 字母不区分大小写。如ab、Ab在系统中被同等对待。 除了自由表的字段名、表的索引标识名至多只能有10 个字符外,其余名称的长度可以是1~128个字符。

变量的作用域



即变量起使用的有效范围 就是每个变量都有它的作用范围,在它的定 义域内有效。 全局变量在整个程序中,包括上下级过程中 都有效。 局部变量只在定义它的模块内有效。 私有变量在定义它的模块和它的下级子程序 或过程内有效。
变量的作用域——局部变量

变量作用域定义:local variable(本地变量) 作用域的关键字:LOCAL 特点:只能在一个函数或过程中被访问,其他过 程或函数不能访问此变量的数据。当其所属程序 停止运行时,局部变量将被释放。
设置日期分隔符

SET MARK TO [日期分隔符] 若执行SET MARK TO 没有制定任何分隔符, 表示恢复系统默认的斜杠(/)分隔符。

设置年份的位数

SET CENTURY ON ┃OFF 用于设臵显示日期型数据时是否显示世纪。也 就是说年份是显示4位还是2位。

设置日期格式检查




由于内存变量存放在独立于数据库文件的临时 存储单元中,所以内存变量可以和字段变量重 名。这种情况下,字段变量具有更高的优先级。 这种情况下,如果用户想访问内存变量,需要 在内存变量前加m.或m→作为前缀。但对内存 变量赋值时不能加前缀。
内存变量——数组


Fra Baidu bibliotek
数组中的每个元素都可以看成是一个简单的内 存变量。 例如:把班级中的每个学习小组看成是一个数 组,小组中的每个学生就是这个数组中的元素。
第3章 数据类型与数据运算
章前导读

Visual FoxPro中包含的数据类型 数据之间进行运算的准则 各种数据的相互转换方法



Visual FoxPro中,除了需要处理表中的数据 外,还需要处理其他的数据。 Visual FoxPro包括常量、变量、表达式和函 数4种形式的数据。 每一类数据都属于特定的数据类型,数据类型 决定了数据的存储方式和运算方法。
(2) 表达式的显示
?<表达式> 结果在下一行的起始处输出 ??<表达式> 结果在当前行的光标所在处直接输出
(3)内存变量的显示
LIST MEMORY [LIKE <通配符>][TO PRINTER│TO FILE <文件名>] 不暂停,直到显示结束。 DISPLAY MEMORY [LIKE <通配符>][TO PRINTER│TO FILE <文件名>] 分屏显示
4.日期时间型常量
表示具体的日期及时间的常量。 分为传统日期时间型常量和严格日期时间型常 量。 严格日期时间型常量的表示形式: {^yyyy-mm-dd,[hh[:mm[:ss]][a│p]]}

5.逻辑型常量

用来表示逻辑真和逻辑假的常量。 逻辑型常量只有逻辑真和逻辑假两个值。 逻辑真的表示形式:.T.、.t.、.Y.、.y. 逻辑假的表示形式:.F.、.f.、.N.、.n. 逻辑型数据占用1个字节。
变量的作用域——公共变量



变量作用域定义:public variable (全局变 量) 作用域的关键字:PUBLIC 特点:可用于所有过程和函数,而不限于定义 该变量的过程和函数。可使用全局变量在多个 过程或函数之间共享数据,在命令窗口中创建 的任何变量自动具有全局属性。
数组类型的声明


3.1常量

常量表示一个具体的、不变的值。 不同类型的常量有不同的书写格式。 Visual FoxPro中常量包括数值型、字符型、 日期型、日期时间型、逻辑型和货币型6种。
(1)数值型常量

就是我们所说的常数,用来表示一个数量的大小,具 有运算意义。数值型常量由数字0~9、小数点和正负 号组成。 例如:65、-26、1.5E7、2.34E-8
注:Visual FoxPro中通配符包括 * 和?
(4)变量的清除
CLEAR MEMORY 清除所有内存变量 RELEASE <内存变量名表> 清除指定内存变量 RELEASE ALL <EXTENDED> 清除所有内存变量,加上 EXTENDED能清除公共内存变 量 RELEASE ALL [LIKE<通配符>│EXCEPT <通配符>] 选用LIKE短语清除与通配符相匹配的变量,选用 EXCEPT短语清除与通配符不相匹配的变量。
内存变量——数组


数组由数组名和数组序号组成。序号被称作下 标,是数值型数据。用户通过数组名及对应的 下标实现对数组元素的访问。 数组从结构上可分为一维数组和二维数组。数 组在使用前要用DIMENSION或DECLARE命 令创建,用以规定数组名、数组的维数和大小。
数组的定义
格式: DIMENSION <数组名>( <下标上限1>[<下标上 限2>] )[,……]
内存变量的类型

字符型(C)、数值型(N)、货币型(Y)、逻辑型 (L)、日期型(D)、日期时间型(T) 例如: A=123,其中A表示一个数值型变量,123是变量值 B={^2006-8-1},其中B表示一个日期型变量, {^2006-8-1} 是变量值 C=„中国’,其中C表示一个字符型变量,‘中国’ 是变 量值
命令格式中的符号约定





命令中的[ ] 、| 、…、< > 符号都不是命令本 身的语法成分,使用时不能照原样输入 其中:[ ] 表示可选项,根据具体情况决定是 否选用 | 表示两边的部分只能选用其中的一个 … 表示可以有任意个类似参数,各参数间用 逗号隔开 < > 表示其中内容要以实际名称或参数代入

(3)日期型常量

用来表示具体日期的常量 定界符是{ } 分隔符是(/)、(-)、(.)和空格
传统日期格式与严格日期格式

传统日期格式:mm/dd/yy 严格日期格式:{^yyyy-mm-dd} 如{08-23-98}可以表示1998年8月23日,如 {^1998-08-23} 就是1998年8月23日。

DECLARE <数组名>( <下标上限1>[<下标上 限2>] )[,……]
举例
DIMENSION x(3),y(2,3) 一维数组x中包含3个元素: x(1), x(2), x(3) 二维数值y中包含6个元素: y(1,1) ,y(1,2) , y(1,3) ,y(2,1) ,y(2,2), y(2,3)


可以分为简单内存变量和数组。 内存变量是内存中的一个存储区域,变量值就是存放 着这个区域里的数据。 内存变量的类型可以改变,可以把不同类型的数据赋 给同一个内存变量。内存变量的类型取决于变量值的 类型。 变量就像是一个盒子,而变量的值就相当于放在盒子 里的物体。盒子是固定不变的,而放在盒子里的物体 却能更换。

两种日期型的区别



传统的日期格式受其他语句的影响。在不同设 臵状态下,计算机会对同一日期型常量作出不 同解释。 如{10/08/01}可以被解释为2001年10月8日、 2010年8月1日、2001年8月10日等。 严格日期格式确切地表示一个日期而不会受到 命令语句的任何影响。
命令和子句的书写规则
AMERICAN mm/dd/yy ANSI BRITISH FRENCH GERMAN ITALIAN yy.mm.dd dd/mm/yy dd.mm.yy dd-mm-yy
命令工作方式中的常见错误
(1) 命令动词写错 (2) 格式不符合要求 · 标点符号不对(一定要用英文标点符号) · 缺少必需的空格或添加了不该有的空格 · 数据类型不一致,要注意字符型、数值型、日 期型、逻辑型数据的书写格式 (3) 打不开所需文件:没有正确输入盘符和路径 或文件名输错
2.变量的分类

Visual FoxPro中的变量分为 字段变量 内存变量
(1)字段变量

就是我们所说的表中的字段。 因为字段的取值是可变的,所以表中的字段名 又叫字段变量。字段变量在创建表结构时定义 如:‛student”表中的‛sno”、 ‛sname” 等字段名就是字段变量。


(2)内存变量
影响日期格式的设置命令

设臵日期格式 SET DATE [TO] AMERICAN ┃ ANSI┃BRITISH ┃FRENCH ┃GERMAN ┃ITALIAN ┃JAPAN ┃USA ┃MDY ┃DMY ┃YMD
常用日期格式
短语 格式 短语 JAPAN USA MDY DMY YMD 格式 yy/mm/dd mm-dd-yy mm/dd/yy dd/mm/yy yy/mm/dd

6.货币型常量
用来表示货币值的常量。 货币型数据与数值型数据的不同之处就是前面的货币 符号($),如:$100 货币型数据采用4位小数存储,如果超出,系统会将 多余小数位四舍五入掉。 货币型常量没有科学记数法形式,在内存中也占8个 字节。它的取值范围是: -922337203685447.5807~922337203685447.5807

私有数组 ——用DECLARE 或 DIMENSION 定义 全局数组 ——用PUBLIC命定义 局部数组 ——用LOCAL定义
3.2.2内存变量的常用命令
(1)内存变量的赋值 STORE <表达式> TO <内存变量名表> 如:STORE "王兰" TO cStud STORE "王兰" TO cStud,cstno <内存变量名>= <表达式> 如:cStud = "王兰"
变量的作用域——私有变量


变量作用域定义:private variable (私有变量) 作用域的关键字:PRIVATE 特点:私有变量在 VFP 中是默认的,不需要特殊的 关键字定义。但是,如果在更高一级例程(routine) 中已经有同名变量,可以用PRIVATE 关键字予以声 明,以限定其范围。当定义此变量的例程结束时,此 变量也被相应释放。可使用私有变量在被调用的函数 中共享数据。
SET STRICTDATE TO [0 ┃1 ┃2] 用于设臵是否对日期格式进行检查 0表示不进行严格的日期格式检查 1表示进行严格的日期格式检查,是系统默认 设臵。 2表示进行严格的日期格式检查,对于CTOD() 和CTOT()函数格式也有效。

严格的日期格式可以在任何情况下使用,传统 的日期格式只能在SET STRICTDATE TO 0的 情况下使用;当SET STRICTDATE TO 1或2 的情况下,用户使用传统日期格式,系统会报 错。


系统内存用8个字节来表示一个数值型常量,其取值 范围是: -9999999999E-19~ 0.9999999999E20
(2)字符型常量

习惯上也称‚字符串‛,由中英文字符、ASCII码、 各种符号、空格和数字组成。 表示方法:用半角单引号、双引号或方括号将字符串 括起来。(定界符) 在字符型数据中,一个汉字占两个字节的位臵,其他 字符占一个字节的位臵。 例如:’VFP‟、‛计算机001”、[轻工学院]、[祖国的’ 花朵’]

(5)表中数据与数组数据之间的交换
从当前记录中取特定字段的值赋给数组 scatter [fields <字段名表>] to <数组名> 从当前记录中取所有字段的值赋给数组 scatter to <数组名> 从当前表中取所有字段的值赋给数组 COPY TO ARRAY <数组名>
(1) 以命令动词开始; (2) 各部分之间要用空格隔开; (3) 命令、子句、函数名都可简写为前4个字符,大、小 写等效; (4) 一行只能写一条命令,总长度不超过8192个字符, 超过屏幕宽度时用续行符‚;‛; (5) 变量名、字段名和文件名应避免与命令动词、关键字 或函数名同名,以免运行时发生混乱。
相关文档
最新文档