第3章VFP语言基础.ppt_第1页
第3章VFP语言基础.ppt_第2页
第3章VFP语言基础.ppt_第3页
第3章VFP语言基础.ppt_第4页
第3章VFP语言基础.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual FoxPro 语言基础,第3章 VFP语言基础,3.1 标识符 3.2 数据类型 3.3 常量与变量 3.4 数组 3.5 运算符和表达式 3.6 常用标准函数,3.1 标识符,关键字 在VFP中有一些标识符被称为关键字,已被系统预先定义,它们具有特殊的用途。如for,if,else,endif,do,while,case等。,预定义表示符 具有特殊含义的标识符,以固定的形式用于特定的地方,如标识库函数名和处理命令。 处理命令。如input,accept,clear,locate,use,list等。 标识库函数名。如abs,sqrt,mod,max,left,year,ctod

2、,eof,bof等,用户自定义标识符 允许用作标识符的字符有:26个英文字母,数字,下画线(_)等一些可打印字符。 标识符的命名规则: (1)以字母、汉字或下画线开头,且后跟字母、数字、下画线。 (2)有效长度随系统而异,但最多前8个字符有效(超长部分被舍弃)。,3.2 数据类型,数据类型是指简单数据的基本属性,VFP的数据类型可以按需要分为两大类:一类是内存变量,另一类是用于表中的字段(即字段变量)。,适用于内存变量与字段变量,1字符型(character) 字符型数据类型标识符为C,由字母、数字、一些特殊字符、汉字等组成,字符型数据的长度为0254,每个字符占一个字节(一个汉字占两个字节)

3、。,2货币型常量 货币型变量类型标识符为Y ,是由符号“$”开头的一个表示货币量的数字。,3数值型 数值型类型标识符为N 。型常量可以是由阿拉伯数字、小数点和正负号构成的各种整数、小数或实数。 数值型数据的长度为120位,每个数据占8个字节。 例如:-196,3.1415926535,0.2831E+2,4日期型 日期型类型标识符为D ,用来表示一个具体的日期。默认格式为:yyyy-mm-dd或yyyy/mm/dd。 例如:2004/07/11空白日期 或/ 注意: Visual FoxPro默认使用严格的日期格式,如果要使用通常的日期格式,必须执行SET命令。,5日期时间型 日期时间型数据类

4、型标识符为T ,用来表示一个具体的日期与时间。默认格式为:yyyy-mm-dd,hh:mm:ssa|p。 例如:2004/07/11 11p 2004/07/11 11:12:30p 日期与时间数据之间必须用空格分隔,6逻辑型 逻辑型数据类型标识符为L ,常用来表示某个条件成立与否。型常量只有逻辑真与逻辑假两个值,逻辑真值通用.T.表示,逻辑假值用.F.表示。 .T.,.t.,.Y.或.y.表示“真” .F.,.f.,.N.或.n.表示“假”,适用于字段变量的数据类型,字段变量是与数据表中某个字段相联系的,在创建数据表时定义的一个字段就对应一个字段变量,数据表中的字段名即其字段变量名。,1.

5、浮点型 (1)单精度浮点型(Float)。VFP包含此类型是为了提供兼容性,与数值型等价。 (2)双精度浮点型(Double)。双精度浮点型用来取代数值型,以便能提供更高的数据精度。双精度浮点型数据采用固定存储长度的浮点数形式。与数值型不同,双精度浮点型数据的小数点位置是由输入的数据值决定的,每个双精度浮点型数据占8个字节。双精度浮点型数据的取值范围是:+/-4.9406564841247E-324+/-1.79769313486232E308。,2. 备注型(Memo) 备注型数据类型标识符为M,用来表示一段文本数据。备注内容的多少只受内存可用空间的限制。备注型字段的内容不能直接存放在.db

6、f文件中,而是由系统自动将备注的内容存放在主文件名与表名相同扩展名为.dbt的文件中。,3. 通用型(General) 通用型数据类型标识符为G,可以表示类似“照片”、“Word文档”、“Excel工作簿”等OLE对象。通用型数据的多少只受内存可用空间的限制。,4. 整型(Integer) 整型数据类型标识符为I,可用来表示正负整数,其取值范围是: -21474836472147483646, 整型字段占4个字节。,5. 二进制数据类型 二进制数据包括二进制字符型和二进制备注型两种,用于存储任意不经过代码页修改而维护的字符型数据或备注型数据。它们只能用于表中的字段。,只适用于内存变量的数据类型

7、,对象型(Object),是用于存储类的具体实例的数据类型,类型标识符为O。对象型数据可以存取表单、控件等系统对象,还可以存取用户自定义对象。,常量,常量:在程序的运行过程中不改变其值的量 常量的种类: 数值型常量 字符型常量 逻辑型常量 日期型常量 货币型常量,数值型常量,用整数、小数、科学计数法表示的数 举例: 123、-200、3.1415926、2.34E2,字符型常量,由一串字符组成的字符串 表示:用“”(双引号)、 (单引号)、 (方括号)括起来 举例: “北京”、武汉大学、123.456 注意:最长只能为254个字符,逻辑型常量,表示“真”或“假”的量 表示方法: “真”.T.、

8、.Y.、.t.、.y. “假”.F.、.N.、.f.、.n. 注意:两边的点不能少,日期型常量,表示日期和时间的量 严格的日期格式: YYYY-MM-DD hh:mm:ss a|p 举例: 2010/10/30表示2010年10月30日 2010-10-30 13:25:39表示2010年10月30日下午1点25分39秒,常用日期格式: MM/DD/YY hh:mm:ss a|p 举例: 10/30/10表示2010年10月30日 10/30/10 13:25:39表示2010年10月30日下午1点25分39秒,改变日期格式,可以改变日期的输入格式 SET STRICTDATE TO 0 设置

9、为常用格式 SET STRICTDATE TO 1 设置为严格格式 可以改变日期的显示格式 工具|选项|“区域”标签中“日期和时间”,货币型常量,表示货币值的量 表示:以$开头,4舍5入到小数点4位 举例: $123.456789结果为123.4568,变量,在程序的运行过程中可以变化的量 分类: 内存变量:由用户定义并使用的内存变量 是一种临时变量,以字符打头不超过128个字符 系统内存变量:系统使用的内存变量 以下划线开头,用以控制外部设备及有关信息的处理 字段名变量 以数据表的字段名作为变量引用 其值为当前记录相应字段的值 字段变量可以有13中不同的类型:字符型、数值型、浮动型、双精度型

10、、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型,变量名,命名规则 以字母、汉字或下画线开头 由字母、汉字、数字、下画线等符号组成 最多128个字符 不能与保留字相同 举例:xsbh、xm、姓名_1等等 注意: 该规则可用于函数名、库名、表名、字段名等 变量名不可与系统保留字同名,变量类型和值,6种变量类型 字符型 数值型 逻辑型 日期型 日期时间型 货币型 注意: 变量无需申明,通过对变量赋值决定变量类型,赋值命令 = STORE TO 举例: xx=1.5 xy=青岛 z=2010-9-18 13:25:34 STORE 1 TO a, b, c 是否

11、团员=.T.,系统内存变量,由VFP自动生成和维护的变量 一般以下划线开头 举例: _DIARYDATE &当前日期 _CLIPTEXT&剪贴板文本 例通过_calcvalue系统变量将一个数字传到计算器中, 激活计算器窗口并计算结果。 clear _calcvalue=20 activate window calculato 例往剪贴板中写入信息 _CLIPTEXT=hello!“ 查看剪贴板,变量显示命令? | ?,格式:? | ? 功能:计算并显示表达式的值 说明: ?换行显示(从屏幕下一行第一列开始显示结果) ?不换行显示(从屏幕当前列开始显示结果 举例: ? xx ? ? xy ?

12、是否团员 ? “I am a student.” 表示可用逗号隔开多个表达式。 ?“xx=“,xx,例题: Store 2*4 to a1,a2,a3 ?a1=,a1,a2=,a2,a3=,a3 ?a1=6,a1,a2=5,a2,a3=4,a3,变量显示命令LIST/DISPLAY MEMORY,格式:LIST|DISPLAY MEMORY LIKE TO PRINT 功能:显示当前已定义的内存变量, 包括变量名、有效范围、类型、值 举例: LIST MEMORY&滚动显示 DISPLAY MEMORY&分屏显示 DISPLAY MEMORY LIKE x*&显示所有以x开头的变量,例 STO

13、RE dggaf TO a1 a2=2004-04-25 c=.t. LIST MEMO LIKE a? 例 显示建立的内存变量,执行如下命令: LIST MEMORY LIKE ?,数组,数组的概念及特点 数组的定义 数组的赋值,数组的概念及特点,数组的概念 名字相同、用下标区分的内存变量 数组元素 数组中的每一个变量 特点 同一数组中各元素可以是不同的数据类型 数组可以不带下标使用 在赋值号左边时表示整个数组 在赋值号右边时表示该数组的第一个元素 数据可以在数组和数据表间相互转换,数组的定义,格式:DIMENSION |DECLARE () ,() () ,() 说明:数组下标下界为1 例

14、如:DIMENSION c(4) DIMENSION a(3) , b(2,3),数组的赋值,一个元素一个元素地赋值 a(1)=10 a(2)=“山东科大” a(3)=2001-10-29 b(1,1)=2.3 b(1,2)=“青岛” b(1,3)=.T. b(2,1)=4 b(2,2)=78 Store 2001-10-29 to b(2,3) 数组整体赋值 a=40 b=0 如果定义的数组未赋初值,系统默认为逻辑值 .F. 二维数组可以当作一维数组使用 b(1,2)相当b(2) b(2,2)相当b(5),例 数组定义和赋值。 DIMENSION a(10), b(3,4) a=0 STOR

15、E 6 TO b b(1,2)=Visual FoxPro,同一数组的不同元素可以存放不同类型的数据,例题:级数输出,dimension x(20) x(1)=1 x(2)=2 ?x(1),x(2) for i=3 to 20 x(i)=x(i-2)+x(i-1) ?x(i) endfor return,运算符,分类 算术运算符 关系运算符 逻辑运算符 字符运算符,算术运算符,运算对象和运算结果可以是数值型或日期型 运算符 优先级 *或:乘方 高 *:乘 、 /:除 %:取模(或取余),取两数相除的余数 +:加、 -:减 低,举例: ? 5/3 结果:1.67 ? 5%3 结果:2 ?-3*2

16、-5 结果:4.00 ?2*7%32+3 结果:8,算术运算符,举例 ? 3/2&返回1.5 ? 5.5%3 &返回2.5 ? Int(5/3)& 1,取得数值的整数部分 ? 62&返回36 ? 2001-12-29+4&返回2002-1-2 ? 2002-3-1 -2001-12-29&返回62 ? 2002-3-1 1&返回2002-2-28 ? 2000-3-1 1&返回2002-2-29,字符运算符,运算对象和运算结果均为字符型 +:字符串连接 -:字符串连接,将两字符串尾部空格移到结果字符串尾部 举例 ? “ABC ”+“DEF ”&“ABC DEF ” ? “ABC ”-“DEF

17、”&“ABCDEF ” ? Len(“ABC ”-“DEF ”)&10,关系运算符,一般用于判断指定的条件是否满足 运算对象可以为数值型、字符型、日期型等 运算结果为逻辑型 运算符 :是否大于 =:是否等于 =:是否大于等于 、!=、#:是否不等于 =:字符串全等比较,只有两个字符串的各对应元素都相等时,才返回.T.,否则返回.F. $:字符串包含,若右边的字符串中包含左边的字符串,则返回.T.;否则返回.F.,关系运算符,举例 ? 23返回.F. ? 23返回.T. ? “ABC”=“ABC”返回.T. ? “AB”=“ABC”返回.F. ? “ABC”=“AB”返回.T. ? “ABC”=

18、“ABC”返回.T. ? “ABC”=“AB”返回.F. ? “AB”=“ABC”返回.F. ? “AB”$“ABC”返回.T. ? “AC”$”ABC”返回.F.,逻辑运算符,在多个逻辑值中进行判断,一般用于判断某几个条件是否满足 运算对象和运算结果均为逻辑型 运算符 OR或.OR.:逻辑或,只有两个运算对象均为.F.时,返回.F.;其余均返回.T. AND或.AND.:逻辑与,只有两个运算对象均为.T.时,返回.T.;其余均返回.F. NOT或.NOT.:逻辑非,运算对象为.T.时,返回.F.;运算对象为.F.时,返回.T.,表达式,表达式的概念 表达式的运算顺序 表达式分类,表达式的概念

19、,用运算符将常量、变量、函数等连接起来的式子 单个的常量、变量、函数等是表达式的特例 表达式必须有确定的值若表达式中包含变量,该变量必须赋值,运算符同级:从左到右 运算符不同级,表达式的运算顺序,表达式分类,按表达式值的类型分: 数值表达式 字符表达式 关系表达式 逻辑表达式 日期表达式,表达式举例,? (SQRT(32*2)/4+6)*5-20 ? (SQRT(32*2)/4+6)*5-2030 ? “cd”$ “abc”+”def” ? Date()=2002-3-8 A=5 b=4 c=6 ? ab and ac ? Ab and a+bc,标准函数,函数的概念 函数的三要素:函数名、参

20、数、函数值 如ABS(-2) 函数的分类,按返回值分: 数值型 字符型 日期型 逻辑型,按功能分: 字符处理函数 数学运算函数 转换函数 日期函数 测试函数 环境函数 键处理函数 数组函数 窗口函数 菜单函数 其他函数,字符处理函数,格式:SUBSTR(,) 功能:返回的子串, 说明: 表示子串在源字符串中的起始位置 子串包含的字符个数,若缺省,表示到源字符串末尾,举例 A=“This is a book.” ? SUBSTR(a,1,4) &返回This ?SUBSTR(“I am a student”,7) &返回student,字符处理函数,格式:LEFT(,) 功能:返回中左边个字符

21、举例: A=“This is a book.” ? LEFT(a,4)&返回This,格式:RIGHT(,) 功能:返回中右边个字符 举例 RIGHT(“I am a student”,7)&返回student,使用子串函数时,注意源串前后的空格。,字符处理函数,格式:AT(,) 功能:返回在中第n次 出现的位置 说明: 若未找到,返回0 若省略n表示,相当于n=1 举例 ? AT(“cd”,”cdabcd”)&返回1 ? AT(“cd”,”cdabcd”,2)&返回5 ? AT(“ad”,”cdabcd”)&返回0,字符处理函数,格式:LOWER() 功能:将变为小写 格式:UPPER() 功能:将变为大写 例:?Lower(“abCDFg”) 显示“abcdfg” ?upper(“abCDFg”) 显示“ABCDFG”,字符处理函数,格式:SPACE() 功能:返回个空格组成的字符串 格式:LTRIM() 功能:删除字符表达式值前的空格 格式:RTRIM(或TRIM() 功能:删除字符表达式值后的空格 格式:ALLTRIM() 功能:将前后的空格去掉 格式:LEN() 功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论