第二章 VFP数据类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)用PRIVATE指定私有变量 1、格式:private 变量名 2、私有变量可以在建立它的模块以及相应的 下层模块使用 3、私有变量可以将高层中创建的、私有变量 同名的变量隐藏起来
Main3.prg
Public a,b
Procedure sub1() Private a a=10
Procedure Sub2() ?a ?b Endproc *a=10 *b=20
Main1.prg
Local x x=1 ?x Sub1() ?x &&x=1 Procedure sub1 x=2 endproc
Main2.prg
x=1 ?x Sub2() ?x &&x=1 Procedure Sub2 Local x
x=2
endproc
(2)用PUBLIC指定全局变量(公共 )
{00:00:00AM}等价于午夜{12:00:00AM} {00:00:00PM}等价于中午{12:00:00PM} {00:00:00}至{11:59:59} 等价于 {12:00:00AM}至{11:59:59AM} {12:00:00}至{23:59:59} 等价于 {12:00:00PM}至{11:59:59PM}
同名称、以下标相互区分的有序内存变量。 –数组属于内存变量,数组必须先定义后使 用,定义数组是向系统申请数组元素在内 存中的存储空间
1. 数组的定义
DECLARE X(5), Y(5,5) 私有数组 DIMENSION A(10),B(10,10) 私有数组 PUBLIC X(3,4) 全局数组 LOCAL M(9) 局部数组 数组下标从1开始,X(0)是错的 数组在声明之后,每个元素被默认地赋予.F.值。
3.不包含任何字符的字符串(“”)叫空串。
2.货币型
格式: $ + 数字0-9、小数点和正负号组成 占用字节: 8
取值范围:(922337203685477.5807,922337203685477.5807)
例如: $100、$15.31 说明:1.货币数据无科学计数法。
2.货币数据采用4位小数,多余4位时, 如: $123.456789 系统自动将多余的小数四舍五入。 存储为 $123.4568
<内存变量名>=<表达式>
A=.T. 将逻辑真值赋给变量A
2.控制变量访问
局部变量(local ) 私有变量 (private) 全局变量 (public)
(1)用LOCAL指定局部变量(本层 )
1. 只能在创建他们的程序中使用和修改,不 能被更高或更低层的程序访问
2. 在他们所属的程序停止运行时,局部变量 和数组将被释放 3. 格式:Local a(变量名)
一、命名规则
数据容器需要一个名称 当建立名时,必须符合如下规则:
– 名称由字母、下划线“_”和数字符号组成;
– 名称的开头只能是字母或下划线,不能是数字;
– 自由表的字段名、表的索引标识名至多只能10个
字符,其余的名称的长度可以在1~128个字符之 间; – 避免使用VFP系统的保留字。
二、 常量
1.5.求最大值和最小值函数 MAX( ) MIN( )
【格式】MAX(eExp1,eExp2[,eExp3…])
MIN(eExp1,eExp2[,eExp3…])
【功能】MAX()计算各表达式的值,并返回其中最大值.
1.3.四舍五入函数ROUND( )
【格式】ROUND(nExp1,nExp2) 【功能】返回nExp1四舍五入的值,nExp2表示 保留的小数位数。
【举例】? ROUND(12.36,1) 留的小数位数;
结果: 12.4
【说明】 当nExp2的值大于等于0时,其表示保 其值小于0时,其表示保留的整数位数 。
5、释放内存变量
Release a1, a2 Release all |clear memory Release all like a*
6、保存和恢复内存变量
SAVE ALL LIKE *|?通配符 TO 内存变量 文件 RESTORE FROM 内存变量文件
三、 数组
–数组变量是结构化的变量,是一组具有相
2. 为数组元素赋值
dimension arrayname[6,3] arrayname[1,2]=1113 arrayname[1,3]=“ABC” arrayname[2,2]=.T. arrayname[3,3]={^2008/08/08} – 可以用一个语句为所有元素赋相同的值 arrayname=10000 STORE 10 TO A
第二章
Visual FoxPro的数据类型
2.1 数据类型
分类
– 常用:C、N、D、L、M、G – 其它:货币、浮点、整型、双精度、日期时间、 备注(二进制型)、字符型(二进制型)
类型的使用
– 检查类型函数TYPE() – 只用于字段的类型: 双精度、浮点、通用(G)、整型、备注 备注(二进制型)、字符型(二进制型)
值在整个操作过程中保持不变 类型
– 字符:‘王欢’, “I am a student.”,“123.44” – 数值:123.44, 2E+4 – 逻辑:.T. , .F
编译时常量
– 用 #DEFINE预处理命令定义 – 如:#DEFINE OPER “输入的数据非法!” #DEFINE pi 3.1415926 – 不能另作它用
1.字符型
格式: 用定界符将字符串括起来 由任意ASCII字符、汉字等组成 定界符:“ ” ,‘ ’ ,[ ] 例如: “ I am a student” „中国’
若定界符本身是常量中的内容; 2.定界符必须配对出现; o 则要用另一种定界符定界;
o
[123]
说明:1.定界符不能作为常量本身的内容;
返回单个值或者不返回值
函数分为系统函数和用户自定义函数
主要内容
1、数据类型函数 2、数据库类型函数 3、其它类型函数
nExp cExp dExp lExp eExp 代表数值表达式 代表字符型表达式 代表日期型表达式 代表逻辑型表达式 代表多种类型表达式
一、数据类型函数
1、算术运算函数
1.1 取绝对值函数 ABS( ) (absolute)
3.日期型
书写格式:{年月日} (年月日之间用分隔符分隔) 分 隔 符:斜杠 / 连字号 — 点句号 . 空格 取值范围:01/01/0001~12/31/9999 例如: {10/25/99} {10-25-2003} {^2003-8-6}
说明:1.默认值:分 隔 符:斜杠 / 传统的日期格式 严格的日期格式 日期格式:mm/dd/yy(美国日期格式) 2.日期值输入格式与输出格式并不完全相同, 用户可根据应用需要设置输出格式。
1.4 求余数函数 MOD( )
【格式】MOD(nExp1,nExp2) 【功能】返回nExp1除以nExp2的余数。 【说明】①余数的符号与nExp2相同。 ②当两表达式同号时,函数值为两数相除 的余数;当两表达式异号时,函数值为 两数相除的余数再加上除数的值。 举例: ?MOD(36,10)结果: 6 ?MOD(36,-10)结果: -4 ?MOD(-36,10)结果: 4 ?MOD(-36,-10)结果: -6
三、变量
内存变量(变量) 变量是由程序员定义的一个或者一组单元 变量名是存储位置的符号标识;变量中存 储数据通过该名称来读写。 新来旧去、取之不尽
1、变量的创建
格式一 STORE <值的表达式> TO <内存变量名表>
STORE 0 TO AA,BB STORE "李磊" TO NAME 格式二
5. 数值型(Numeric)
书写格式:由数字0-9、小数点和正负号组成
占用字节:8,20(字段)
例如: 100、-21、15.31、-21092.5041、 1.3E+9
6.逻辑型
书写格式:.T. .t. .Y. .y. .F. .f. .N. .n.
占用字节: 1
说明:1.逻辑常量只有真和假两种值:
9.浮点型(Float) 10.双精度型(Double) 11.整型(Integer) 4字节 12.二进制字符型(Binary Character) 13.二进制备注型(Binary Memo)
2.2 数据存储
VFP允许使用常量、变量、数组、记录 和对象来存储数据,它们也被称为存储 数据的容器 – 常量(Constants) – 变量(Variables) – 数组(Arrays) – 字段(Fields) – 对象(Objects)
2.应在表示逻辑常量的字母左右加注
圆点符“.”以示区别。 否则会被误认为变量名。
7.通用型(General) – 包含一个4个字节的引用(连接) – 用于在表中存储OLE(对象链接与嵌入) 对象(图片,电子表格等) 8、备注型(Memo) • 包含一个4个字节的引用(连接) • 用于在表中存储数据块(举例) • 备注字段一般是一些备注性质的文字
严格日期
– 表示方法:{^yyyy-mm-dd}或者
{^yyyy/mm/dd} – yyyy表示年,mm表示月,dd表示日 – Birthday={^1989-01-01} – Tdate={}
设定格式
– 工具/选项/区域 – Set century on|off – Set date to ymd – Set strictdate to 0|1|2
【格式】ABS(nExp)
【功能】计算nExp的值,并返回该值的绝对值。
【举例】?ABS(-123+23) i=100 ?ABS(i+20) 结果: 结果: 100 120
1.2.取整函数
格式:INT(nExp) 功能:计算nExp的值,返回该值的整数部分 举例:? INT(10.6) 结果: 10 格式:CEILING(nExp) 功能:计算nExp的值,返回不小于该值的最小整数 举例:? CEILING(10.6) 结果: 11 格式:FLOOR(nExp) 功能:计算nExp的值,返回不大于该值的最大整数 举例:?FLOOR(10.6) 结果: 10
?nVar、?m.nVar 或 ?m->nVar 如果字段和变量同名,则字段具有更高的 优先权 clear use 教师表 3 ?teacher_id teacher_id="12345" ?teacher_id ?m.teacher_id
4、显示内存变量
Display |list memory Display memory store “hello” to a1 store “hi” to a2 display memory like a*
1、格式:public 变量名 2、在命令窗口中创建的任何变量或数组被 自动赋予全局属性 3、全局变量在整个运行程序中一直存在
public m Local n m =3 n=4 ?m *m=3 ?n *n=4 Sub() ?m *m=30 ?n *n=4
Procedure sub() m=30 n=40 endproc
4. 日期时间型(DateTime)
格式: {^yyyy-mm-dd[hh[:mm[:ss]][a|am|p|pm]]} – cdatetime={^1991-02-02 03:21:56} – Tblankdate= {:} – 时间格式受SET HOURS、SET SECONDS 命令的影响 Set hours to 12|24 Set seconds on|off
四、字段
字段是记录中拥有特定数据类型.
五、对象
对象是类的实例,类是对于拥有数据和一定行
为特征的对象集合的描述。 对象:表单,表单集,控件 对象都有属性和方法,并能响应特定的事件
2.3 函数(系统函数)
函数是一段程序代码,是预先编制好的计
算模,可供VFP程序在任何地方调用。
函数调用格式:函数名(参数值)
a=1
b=2 ?a ?b Sub1() ?a ?b *a=1 *b=20 *a=1 *b=2
b=20 ?a ?b *a=10 *b=20
Sub2() endproc
全局变量
私有变量
主程序
Public a Public b 一级模块 Private a
局部变量
二级模块 local a
三级模块
3.访问变量