《程序设计语言-VFP语言基础.ppt》由会员分享,可在线阅读,更多相关《程序设计语言-VFP语言基础.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第第第2 2 章章章章 VFPVFP语言基础语言基础语言基础语言基础2.1 数据类型数据类型2.2 数据存储数据存储2.3 运算符和表达式运算符和表达式2.4 函数函数2.5 命令命令2.1 数据类型数据类型数据类型数据类型说说 明明长度长度(字节字节)字符型字符型Character用各种文字字符表示的数据。由字母、数字、用各种文字字符表示的数据。由字母、数字、汉字、符号和空格等组成汉字、符号和空格等组成1254数值型数值型Numeric可以进行算术运算的数据。由数字可以进行算术运算的数据。由数字09、小、小数点和正负号构成数点和正负号构成8货币型货币型Cuyency采用表示货币量的数据来代
2、替用数值型数据采用表示货币量的数据来代替用数值型数据表示货币表示货币8逻辑型逻辑型Logic用来进行各种逻辑判断的数据。只有两个值:用来进行各种逻辑判断的数据。只有两个值:真或假真或假1日期型日期型Date用来表示日期的数据。存储格式为用来表示日期的数据。存储格式为“YYYYMMDD”8日期时间型日期时间型DateTime描述日期和时间的数据,存储格式为描述日期和时间的数据,存储格式为“YYYYMMDDHHMMSS”82.1 数据类型数据类型数据类型数据类型说说 明明长度长度(字节字节)整型整型Integer 是指不包含小数点部分的数值,以二进制形式存储是指不包含小数点部分的数值,以二进制形式
3、存储4浮点型浮点型Float是数值型数据的一种,与数值型数据完全等价,但在是数值型数据的一种,与数值型数据完全等价,但在存储形式上采取浮点格式,由尾数、阶数及字母存储形式上采取浮点格式,由尾数、阶数及字母E组成组成8双精度双精度Double 是具有更高精度的数值型数据是具有更高精度的数值型数据8备注型备注型Memo用于存储字符型数据块,用来存储指向实际数据存放用于存储字符型数据块,用来存储指向实际数据存放位置的地址指针,实际数据存放在与数据表文件同名位置的地址指针,实际数据存放在与数据表文件同名的的.FPT文件中,其长度仅受磁盘空间的限制文件中,其长度仅受磁盘空间的限制4通用型通用型Gener
4、al用于存储用于存储OLE对象,可以是文档、图片、电子表格等。对象,可以是文档、图片、电子表格等。用来存储指向用来存储指向.FPT文件位置的地址指针文件位置的地址指针4字符型字符型二进制二进制 用于存储任意不经过代码页修改而维护的字符型数据用于存储任意不经过代码页修改而维护的字符型数据1254备注型数据备注型数据 二进制二进制 用于存储任意不经过代码页修改而维护的备注型数据用于存储任意不经过代码页修改而维护的备注型数据42.2.1 常量常量 常量常量是指在数据处理过程中其值始终保持不变的量是指在数据处理过程中其值始终保持不变的量 1.数值型常量数值型常量:数学中的十进制整数或小数:数学中的十进
5、制整数或小数 如:如:10.25,-123.567 2.浮点型常量浮点型常量:数值型常量的浮点格式:数值型常量的浮点格式 如:如:1.234E+15,1.234E-15 3.字符型常量字符型常量:用单撇号、双撇号、方括号括起来的字符串:用单撇号、双撇号、方括号括起来的字符串 如:如:“ABCD”、1234、中国北京中国北京 4.逻辑型常量逻辑型常量:用下圆点作为定界符,只有真和假两个值:用下圆点作为定界符,只有真和假两个值 如:如:.T.、.t.、.Y.、.y.(真真);.F.、.f.、.N.、.n.(假)假)5.日期型常量日期型常量/日期时间型常量日期时间型常量:表示一个确切的日期和时间,用
6、花括号作为定界符表示一个确切的日期和时间,用花括号作为定界符 如:如:2003-03-03、1996-03-20 12:30:15 也可以用也可以用CTOD函数进行转换,如函数进行转换,如 CTOD(”03/03/2003”)问题一问题一1、下面的常量各是什么类型:、下面的常量各是什么类型:94.56 “7834.56”2012-03-06 计算机多媒体技术计算机多媒体技术“数据库数据库”.y.2、下面表有几条记录?有几个字段?下面表有几条记录?有几个字段?*程序举例X=4576.23Y=459Z=4*x+y?Z的值是:,zreturn3、本次课作业与上机内容在、本次课作业与上机内容在FTP
7、复习程序复习程序2.2.2 变量变量 变量变量是指在数据处理过程中其值可以改变的量是指在数据处理过程中其值可以改变的量 变量命名变量命名是以字母(汉字)或下划线开头,由字母、汉字、数字和下划是以字母(汉字)或下划线开头,由字母、汉字、数字和下划线组成的字符串,长度不能超过线组成的字符串,长度不能超过128个字符个字符 VFP中的变量分为字段变量和内存变量两种中的变量分为字段变量和内存变量两种 1.字段变量字段变量 存在于数据表中。存在于数据表中。字段变量必须先定义然后才能使用字段变量必须先定义然后才能使用 2.内存变量内存变量 是一种临时信息存储单元,独立于数据表,可以根据需要随时建立。是一种
8、临时信息存储单元,独立于数据表,可以根据需要随时建立。当内存变量名与数据表中的字段变量名相同时,要访问该内存变量,当内存变量名与数据表中的字段变量名相同时,要访问该内存变量,必须在变量名前加上前缀必须在变量名前加上前缀M.或或M-,否则系统将优先访问同名的字段变量否则系统将优先访问同名的字段变量2.2.2 变量变量 建立内存变量建立内存变量 格式格式1:=格式格式2:STORE TO 功能:在定义内存变量的同时确定内存变量的值和类型功能:在定义内存变量的同时确定内存变量的值和类型 例如,例如,X=5&定义变量定义变量X,并把数值并把数值5赋给赋给X STORE X+10 TO Y&定义变量定义
9、变量Y,并将表达式并将表达式X+10的值赋给的值赋给Y STORE”北京北京”TO A,B,C&定义变量定义变量A,B,C,并赋于相同的字符数据并赋于相同的字符数据 X=.F.&重新定义变量重新定义变量X,并赋逻辑值并赋逻辑值 2.2.2 变量变量 输出内存变量的值输出内存变量的值 格式格式1:?格式格式2:?功能:计算功能:计算中各表达式的值并在屏幕上显示出来中各表达式的值并在屏幕上显示出来 显示或打印内存变量显示或打印内存变量 格式:格式:LIST|DISPLAY MEMORY LIKE TO PRINTE|TO FILE 功能:显示或打印内存变量的当前信息功能:显示或打印内存变量的当前信
10、息 例如,在命令窗口中输入命令:例如,在命令窗口中输入命令:LIST MEMORY LIKE X*将在主窗口中显示所有以将在主窗口中显示所有以X打头的内存变量打头的内存变量92.2.2 变量变量 清除内存变量清除内存变量 格式格式1:CLEAR MEMORY 格式格式2:RELEASE 格式格式3:RELEASE ALL LIKE|EXCEPT 功能:释放所有内存变量或指定的内存变量。功能:释放所有内存变量或指定的内存变量。例如,例如,RELEASE X1&释放内存变量释放内存变量X1 RELEASE ALL LIKE X*&释放所有第释放所有第1个字母为个字母为X的内存的内存变量变量 REL
11、EASE ALL&释放所有内存变量释放所有内存变量 3.系统变量系统变量 以字符以字符“_”开头的、由开头的、由VFP系统自动定义生成的变量,其名称系统自动定义生成的变量,其名称也是系统事先定义好的也是系统事先定义好的 例如,例如,_PAGENO,_ALIGNMENT2.2.2 变量变量 4数组数组 内存中连续的一片存储区域,由一组称为内存中连续的一片存储区域,由一组称为数组元素数组元素的变量组成。通过赋的变量组成。通过赋值语句可以为各个元素分别赋值,且所赋值的数据类型可以不同值语句可以为各个元素分别赋值,且所赋值的数据类型可以不同 定义:定义:DIMENSION(,),(,)数组必须先定义后
12、使用,且使用时下标不能超界数组必须先定义后使用,且使用时下标不能超界 每个数组元素通过数组名和相应的索引编号被引用每个数组元素通过数组名和相应的索引编号被引用 例如:定义一个一维数组例如:定义一个一维数组AA和一个二维数组和一个二维数组BB:DIMENSI0N AA(5),BB(2,3)将数值将数值0赋给数组赋给数组AA中的所有元素:中的所有元素:STORE 0 TO AA 将字符串将字符串xyz赋给数组元素赋给数组元素BB(1,1):BB(1,1)=”XYZ”将数值将数值125赋给数组元素赋给数组元素BB(2,1):BB(2,1)=125 将逻辑真值将逻辑真值T赋给数组元素赋给数组元素BB(
13、2,3):BB(2,3)=.T.内内存存中中的的数数组组元元素素第第1个元素个元素第第2个元素个元素第第3个元素个元素第第n个元素个元素2.2.3 其它数据存储容器其它数据存储容器_1.数据表数据表 数据表数据表是一系列相关数据的集合是一系列相关数据的集合 字段字段是数据表中存储、处理数据的基本元素,一个具体的字段只能存储同是数据表中存储、处理数据的基本元素,一个具体的字段只能存储同一种类型的数据一种类型的数据 记录记录是数据表中一组字段的集合,同一个数据表中所有记录都具有相同的是数据表中一组字段的集合,同一个数据表中所有记录都具有相同的字段名,且同名字段在每个记录中的数据类型、数据长度都是相
14、同的字段名,且同名字段在每个记录中的数据类型、数据长度都是相同的 字段和记录构成了一个数据表的全部内容字段和记录构成了一个数据表的全部内容编号编号姓名姓名性别性别基本工资基本工资工龄工资工龄工资应扣工资应扣工资实发工资实发工资100011张爱芳张爱芳女女345.67145.4530.00451.12100012李广林李广林男男445.90185.6045.00586.50100121张兴强张兴强男男1025.98365.53100.001291.51结构结构记录记录字段字段2.2.3 其它数据存储容器其它数据存储容器_2.对象对象 对象对象(Object)是一个具有属性和行为特征的实体,它可以
15、是任何具体是一个具有属性和行为特征的实体,它可以是任何具体事物。例如现实生活中的计算机、电话机、电视机等事物。例如现实生活中的计算机、电话机、电视机等 在面向对象的程序设计中,对象是编程的基本元素,它将某一数据和使在面向对象的程序设计中,对象是编程的基本元素,它将某一数据和使用该数据的一组基本操作或过程封装在一起,构成一个统一体用该数据的一组基本操作或过程封装在一起,构成一个统一体 VFP中的对象可以是表单、标签或各种控件等中的对象可以是表单、标签或各种控件等 每个对象都有自己的属性和行为特征每个对象都有自己的属性和行为特征 2.3 运算符和表达式运算符和表达式 运算符运算符是对相同类型数据进
16、行运算操作的符号是对相同类型数据进行运算操作的符号 用运算符将常量、变量和函数等数据连接起来的式子称为用运算符将常量、变量和函数等数据连接起来的式子称为表表达式达式 表达式的类型由运算符的类型决定,每个表达式按照规定的表达式的类型由运算符的类型决定,每个表达式按照规定的运算规则都产生一个惟一的值运算规则都产生一个惟一的值 数值数值表达式表达式 字符字符表达式表达式 日期日期表达式表达式 关系关系表达式表达式 逻辑逻辑表达式表达式2.3 运算符和表达式运算符和表达式_1.数值表达式数值表达式 数值表达式数值表达式:用算术运算符将数值型数据连接起来的式子,:用算术运算符将数值型数据连接起来的式子,
17、其结果仍是数值型数据其结果仍是数值型数据运算符运算符名名 称称*或或乘方乘方*乘乘/除除%取模(或求余)取模(或求余)+加加-减减12/4*1.34+3*2-8%32.3 运算符和表达式运算符和表达式_2.字符表达式字符表达式 字符表达式字符表达式:用字符串运算符将字符型数据连接起来的:用字符串运算符将字符型数据连接起来的式子,其结果仍是字符型数据式子,其结果仍是字符型数据 “+”运算符:两个字符串首尾相连形成一个新的字符运算符:两个字符串首尾相连形成一个新的字符串串 “-”运算符:两个字符串相连,并将前字符串尾部的运算符:两个字符串相连,并将前字符串尾部的空格移到合并后的新字符串的尾部空格移
18、到合并后的新字符串的尾部 例如,例如,?”ABCD ”+”EFG”+”1234”&结果为:结果为:ABCD EFG1234?”ABCD ”-”EFG ”+”1234”&结果为:结果为:ABCDEFG 12342.3 运算符和表达式运算符和表达式_3.日期表达式日期表达式 日期表达式日期表达式:用算术运算符将日期型和数值型数据:用算术运算符将日期型和数值型数据连接起来的式子,其结果为日期型数据或数值型数据连接起来的式子,其结果为日期型数据或数值型数据 例如,例如,?2002-01-20+5&结果为日期结果为日期:2002/01/25?2002-01-20-5&结果为日期结果为日期:2002/01
19、/15?2002-01-20-2001-10-28&结果为天数结果为天数:842.3 运算符和表达式运算符和表达式_4.关系表达式关系表达式 关系表达式关系表达式:用关系运算符将运算元素连接起来的式子,:用关系运算符将运算元素连接起来的式子,其结果为逻辑真值其结果为逻辑真值(.T.)或逻辑假值或逻辑假值(.F.)例如:例如:S1=”读者读者”S2=”读者文摘读者文摘”SET EXACT ON?S1=S2,S2=S1,S2=S1&结果是结果是.F.F.F.SET EXACT OFF?S1=S2,S2=S1,S2=S1&结果是结果是.F.T.F.运算符运算符名名 称称小于小于大于大于=大于等于大于
20、等于=等于等于、#、!=不等于不等于=字符串精确等于字符串精确等于$字符串包含比较字符串包含比较2.3 运算符和表达式运算符和表达式_5.逻辑表达式逻辑表达式 逻辑表达式逻辑表达式:用逻辑运算符将逻辑型运算元素连接起:用逻辑运算符将逻辑型运算元素连接起来的式子,其结果仍是逻辑型数据来的式子,其结果仍是逻辑型数据 AND(与与):两个表达式的值均为真,结果才为真;:两个表达式的值均为真,结果才为真;否则为假否则为假 OR(或或):两个表达式的值均为假,结果才为假:两个表达式的值均为假,结果才为假 NOT、!(取反):真值变为假值,假值变为真值取反):真值变为假值,假值变为真值 例如例如?105.
21、AND.55.OR.5x2+y2.AND.NOT.(y1y2)的结的结果为果为.F.2.4 函数函数 函数函数 函数是一种能够完成某种特定操作或功能的数据形式。一个函数是一种能够完成某种特定操作或功能的数据形式。一个函数可以接受一个或多个参数,并通过特定的运算返回一个值函数可以接受一个或多个参数,并通过特定的运算返回一个值 格格 式:函数名式:函数名(参数参数1,参数参数2)函数值:函数的运算结果函数值:函数的运算结果 说说 明:任何可以使用表达式的地方都可以使用函数明:任何可以使用表达式的地方都可以使用函数 函数类型函数类型 系统函数:由系统函数:由VFP提供的内部函数,提供的内部函数,有有
22、14类类380多个函数,多个函数,常用的函数有数值函数、字符函数、日期函数、类型转换函数、常用的函数有数值函数、字符函数、日期函数、类型转换函数、数据库函数和测试函数等数据库函数和测试函数等6类类 定义函数:由用户自己定义的函数定义函数:由用户自己定义的函数2.4 函数函数_1.数值函数数值函数数值函数数值函数:返回值是数值的函数:返回值是数值的函数函数格式函数格式函数功能函数功能示例示例ABS(exp)求表达式的绝对求表达式的绝对值值ABS(-3)返回值为返回值为3EXP(exp)e指数函数指数函数EXP(3)返回值为返回值为20.09INT(exp)取整数,负数靠取整数,负数靠0INT(6
23、.9)返回值为返回值为6INT(-6.9)返回值为返回值为-6Round(exp1,exp2)四舍五入函数四舍五入函数Round(1.45,1)返回值为返回值为1.5MOD(exp1,exp2)求余数函数求余数函数MOD(17,3)返回值为返回值为2SQRT(exp)平方根函数平方根函数SQRT(4)返回值为返回值为2Pi()求圆周率函数求圆周率函数2.4 函数函数_2.字符函数字符函数 字符函数字符函数:用于对字符或字符串操作的函数,返回值可以是字符型、数:用于对字符或字符串操作的函数,返回值可以是字符型、数值型或逻辑型值型或逻辑型 示例中,假设示例中,假设 c=”This is a boo
24、k!”函数格式函数格式函数功能函数功能示例示例LEN(exp)求字符串的长度求字符串的长度LEN(c)返回值为返回值为15ASC(exp)求字符串中第一个字符的求字符串中第一个字符的ASCII值值ASC(“BOOK”)返回值为返回值为66LEFT(exp,n)从字符串左部取长度为从字符串左部取长度为n的子串的子串LEFT(c,4)返回串返回串“This”RIGHT(exp,n)从字符串右部取长度为从字符串右部取长度为n的子串的子串RIGHT(c,5)返回返回“book!”SUBSTR(exp,m,n)从字符串中取中间子串从字符串中取中间子串SUBS(c,11,4)返回返回“book”ALLTR
25、IM(exp)删除字符串的前导和尾部空格删除字符串的前导和尾部空格ALLT(“a”)返回串为返回串为“a”LOWER(exp)字符串大写转换为小写字符串大写转换为小写LOWE(“THE”)返回串返回串“the”UPPER(exp)字符串小写转换为大写字符串小写转换为大写UPPER(“the)返回串返回串“THE”SPACE(n)返回返回n个空格字符组成的字符串个空格字符组成的字符串2.4 函数函数_3.日期函数日期函数 日期函数日期函数:用于对日期或日期时间型数据进行操作的函数:用于对日期或日期时间型数据进行操作的函数 示例中,假设示例中,假设 d=2003-09-03 13:23:36函数格
26、式函数格式函数功能函数功能示例示例DATE()返回系统当前日期返回系统当前日期TIME()返回系统当前时间返回系统当前时间DATETIME()返回系统当前日期和时间返回系统当前日期和时间DOW(exp)取日期表达式的星期号(取日期表达式的星期号(1为星期天)为星期天)DOW(d)返回返回4(星期三)(星期三)YEAR(exp)取日期表达式的年份值取日期表达式的年份值YEAR(d)返回值为返回值为2003MONTH(exp)取日期表达式的月份值取日期表达式的月份值MONTH(d)返回值为返回值为9DAY(exp)取日期表达式的日数值取日期表达式的日数值DAY(d)返回值为返回值为3HOUR(ex
27、p)取时间表达式中的小时数取时间表达式中的小时数 13MINUTE(exp)取时间表达式中的分钟数取时间表达式中的分钟数MINUTE(d)返回值为返回值为23SEC(exp)取时间表达式中的秒数取时间表达式中的秒数SEC(d)返回值为返回值为362.4 函数函数_4.类型转换函数类型转换函数 类型转换函数类型转换函数:用于不同类型数据之间的转换函数:用于不同类型数据之间的转换函数 示例中,假设示例中,假设d=2003-09-03 13:23:36 c=”05/08/1984 9:45:50”函数格式函数格式函数功能函数功能示例示例CHR(ASCII码码)返回与返回与ASCII码相应的字符码相应
28、的字符CHR(65)返回字符返回字符“A”CTOD(exp)转换表达式为对应的日期转换表达式为对应的日期CTOD(c)返回返回c对应日期对应日期CTOT(exp)转换表达式为对应的日期时间值转换表达式为对应的日期时间值CTOT(c)返回返回c对应日期时间对应日期时间DTOC(exp)转换日期表达式为字符串转换日期表达式为字符串DTOC(d)返回返回d对应的字符串对应的字符串STR(exp,n,m)数值转换为字符串数值转换为字符串STR(3.14)返回串返回串“3.14”TTOC(exp)转换日期时间表达式为字符串转换日期时间表达式为字符串TTOC(d)返回返回d对应的字符串对应的字符串VAL(
29、exp)返回数字字符串对应的数字返回数字字符串对应的数字VAL(“3.14”)返回值为返回值为3.142.4 函数函数_5.数据库函数数据库函数 数据库函数数据库函数:对数据库操作的函数:对数据库操作的函数函数格式函数格式函数功能函数功能RECOUNT()返回当前表或指定表中的记录个数返回当前表或指定表中的记录个数RECNO()返回当前表或指定表的返回当前表或指定表的 当前记录号当前记录号BOF()如果当前记录指针在表头则返回真,否则返回假如果当前记录指针在表头则返回真,否则返回假EOF()如果当前记录指针在表尾则返回真,否则返回假如果当前记录指针在表尾则返回真,否则返回假2.4 函数函数_6
30、.测试函数测试函数函数格式函数格式函数功能函数功能示例示例TYPE(exp)返回表达式的数据类型,表达式返回表达式的数据类型,表达式以字符串的形式表示以字符串的形式表示TYPE(“65”)返回返回NFILE()测试文件是否存在,如果存在返测试文件是否存在,如果存在返回真,否则返回假回真,否则返回假FILE(“xjk.dbf”),如果次文件如果次文件存在返回真,否则返回假存在返回真,否则返回假 测试函数测试函数:测试表达式类型及文件的函数:测试表达式类型及文件的函数2.5 命令命令 1.命令动词命令动词:所有命令都以命令动词开头,表示要执行的命令功能所有命令都以命令动词开头,表示要执行的命令功能
31、 2.命令子句命令子句:用来修饰或限制命令用来修饰或限制命令 范围子句范围子句:指明在哪些记录范围内执行命令,有四种:指明在哪些记录范围内执行命令,有四种:RECORD 表示指定第表示指定第N个记录个记录 NEXT 表示从当前记录开始的表示从当前记录开始的N个记录个记录 ALL 表示数据库的所有记录表示数据库的所有记录 REST 表示从当前记录开始到最后一个记录表示从当前记录开始到最后一个记录 FIELDS子句子句:指明对数据表中的哪些字段执行命令指明对数据表中的哪些字段执行命令 FOR/WHILE子句子句:后面跟一个逻辑表达式,表示仅对符合条件(即表后面跟一个逻辑表达式,表示仅对符合条件(即
32、表达式的结果为达式的结果为.T.)的记录执行命令操作的记录执行命令操作 例如,显示学生表中所有女生的学号、姓名、出生日期等信息,可使用以例如,显示学生表中所有女生的学号、姓名、出生日期等信息,可使用以下命令:下命令:LIST ALL FIELDS 学号学号,姓名姓名,出生日期出生日期 FOR 性别性别=”女女”2.5 命令命令 3.命令书写规则命令书写规则 必须以命令动词开头,命令中可以含有一个或多必须以命令动词开头,命令中可以含有一个或多个子句,子句的顺序任意个子句,子句的顺序任意 命令动词和各子句之间用空格分开(空格数任意)命令动词和各子句之间用空格分开(空格数任意)命令动词可以缩写为前命令动词可以缩写为前4个字符,且不区分大小写个字符,且不区分大小写 命令行的最大长度为命令行的最大长度为254个字符,一行写不下时,个字符,一行写不下时,要在行尾加续行符(西文分号要在行尾加续行符(西文分号“;”)分行,并在下行)分行,并在下行继续书写继续书写