vfp学习VFP的数据与表达式.ppt_第1页
vfp学习VFP的数据与表达式.ppt_第2页
vfp学习VFP的数据与表达式.ppt_第3页
vfp学习VFP的数据与表达式.ppt_第4页
vfp学习VFP的数据与表达式.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

Contents,1,2019/11/19,单元一数据库系统概述,单元二数据类型及运算规则,单元三VFP的项目管理,模块一数据库及VFP基础,单元二数据类型及运算规则,教学内容:2-1数据类型2-2常量2-3变量2-4表达式2-5函数,教学目标:1熟悉VisualFoxPro的窗口界面与系统菜单。2学会VisualFoxPro的启动和退出,掌握VisualFoxPro的基本操作。3初步掌握VisualFoxPro的基本数据类型。4掌握VisualFoxPro的运算符、表达式以及常用内部函数的使用。5掌握交互式命令执行方法。,2-1数据类型,VFP中每一个数据都有一定的类型,数据类型决定了数据的存储方式和运算方式,因此,在VFP中任何数据须先定义其数据类型,然后才能对其进行数据处理。VFP提供了13种数据类型,分别是:字符型、数值型、货币型、逻辑型、日期型、日期时间型、整型、浮点型、双精度型、备注型、通用型、字符型(二进制)备注型(二进制)。,2-2常量,2-2-1数值型常量2-2-2字符型常量2-2-3日期型常量2-2-4日期时间型常量2-2-5逻辑型常量2-2-6货币型常量,2-2常量,2-2-1数值型常量数值型常量就是整数、小数或用科学记数法表示的数。如:125,-456.267,1.345E+20等。2-2-2字符型常量字符型常量是用字符定界符括起来的字符串。字符定界符有西文的单引号、双引号或方括号三种。如“计算机,ABC,567.345等。注意:字符定界符必须成对的出现。如果字符串中包含一种定界符,则必须用另一种定界符括起来。如:“计算机”,双引号为字符定界符,其中的方括号为字符串。,2-2-3日期型常量日期型常量就是表示一个确切的日期,用一对花括号作为定界符括起来。系统默认的日期格式为美国日期格式(mm/dd/yy),表示月/日/年,“/”为分隔符。分隔符还可以用西文的“-”、“.”和空格表示,如05/25/03表示2003年5月25日。通过菜单“工具选项”命令或SETDATE,SETCENTURYON(OFF)命令可以改变默认的日期格式。(setdatetoshort,setdatetolong)另外,还有一种严格的日期格式,具体表示为:yyyy-mm-dd。如2003-10-15表示2003年10月15日。严格日期格式可以在任何情况下使用,不受SETDATE,SETCENTURY命令的影响。,2-2-4日期时间型常量包括两部分内容:,。同日期型常量,格式为hh:mm:ssa|p,其中hh、mm和ss分别代表时、分和秒;a(AM)和p(PM)分别代表上午和下午,默认为上午AM。2-2-5逻辑型常量逻辑型常量只有两种逻辑值,即真和假。真值用.T.,.t.,.Y.,.y.表示,假值用.F.,.f.,.N.,.n.表示。2-2-6货币型常量货币型常量用来表示货币值,它是以$符号开头的数值型常量,系统自动进行四舍五入取4位小数。如$2567.876567,系统存储为$2567.8766。,2-3变量,2-3-1字段变量2-3-2内存变量2-3-3数组2-3-4系统内存变量,2-3-1字段变量,字段变量是在数据表中定义的变量,它存在于数据表中,一个数据表包含多个字段变量,即多个字段名。字段变量的值随着数据表中记录的不同而改变。当用字段名作变量时,它的当前值就是数据表中当前记录该字段名所对应的值。,【例2.1】打开“学生情况表”表文件,显示第2条记录和第5条记录的学号和姓名字段值,结果如下图所示。,2-3-2内存变量,内存变量是用户通过命令或程序临时定义的变量,内存变量建立后存储在内存中,需要时可把内存变量保存在文件中。内存变量的数据类型由变量值的类型决定,可以把不同类型的数据赋值给同一个内存变量。内存变量的数据类型有字符型、数值型、货币型、逻辑型、日期型和日期时间型。,1内存变量的命名规则(1)以字母、汉字或下划线开头,由字母、汉字、数字、和下划线组成。(2)变量名长度最多为128个字符。(3)不能使用系统的保留字。(保留字是指VFP语言使用的关键字,如CREATE命令中的CREATE就是一个系统保留字)。2内存变量赋值命令命令格式1:=命令格式2:storeto功能:将的值赋给内存变量。说明:格式1只能给一个变量赋值;格式2可以给一批变量赋相同的值,各变量名之间必须用逗号分隔;可对内存变量重新赋值来改变其值和类型。,3显示内存变量命令命令格式:?|?功能:计算的值,并显示在屏幕上。说明:?表示从VFP主窗口下一行的第一列显示结果,?表示从当前行当前列显示结果。【例2.2】在命令窗口中输入赋值命令给内存变量赋值,并显示内存变量的结果。,4显示或打印内存变量命令格式:LIST|DISPLAYMEMORYLIKETOPRINT|TOFILE功能:显示或打印当前已定义的内存变量名、作用范围、类型和值。5内存变量的清除命令格式1:CLEARMEMORY命令格式2:RELEASE内存变量表ALLLIKE|EXCEPT功能:清除内存变量。,6.内存变量的作用域内存变量的作用域就是它的作用范围。根据内存变量的作用范围分为全局变量、局部变量和本地变量。(1)定义全局变量用PUBLIC命令定义的内存变量,可视为全局变量。PUBLIC命令格式:PUBLIC内存变量表命令功能:定义内存变量表中指定的内存变量为全局变量。,(2)定义局部变量PRIVATE命令格式:PRIVATE内存变量表命令功能:定义内存变量表中指定的内存变量为局部变量。(3)定义本地变量LOCAL命令格式:LOCAL内存变量表命令功能:定义内存变量表中指定的内存变量为本地变量。内存变量作用域实例见本单元实训部分,2-3-3数组,数组是按一定顺序排列的一组内存变量,数组中的各个变量称为数组元素。数组必须先定义后使用。每个数组元素可通过数组名及相应的下标来访问。命令格式:DIMENSION|DECLARE(,),(,)功能:定义一个或多个一维、二维或多维数组。,【例2.3】定义数组,并给数组赋值。DIMENSIONY(3),X(2,2)Y=123X(1,1)=345X(1,2)=abcX(2,1)=2003-03-25X(4)=.T.?Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4),2-3-4系统内存变量,系统内存变量是指VFP系统定义的一批变量,它门都以下划“_”开头,分别用于控制外部设备、屏幕输出格式或处理有关计算器、日历、剪贴板等方面的信息。【例2.4】在命令窗口中输入DISPLAYMEMORY命令,以满屏幕暂停的方式显示当前系统的内存变量,结果如图所示。,2-4表达式,2-4-1数值表达式2-4-2字符表达式2-4-3日期与日期时间表达式2-4-4关系表达式2-4-5逻辑表达式,2-4-1算数表达式,算数表达式是由算术运算符将数值型数据连接起来的表达式,其运算结果仍然是数值型数据。算术运算符及优先级为:()、*或、*、/、%、+、-【例2.5】计算(-)6的值。?(7*2-1/5)*6,2-4-2字符表达式,字符表达式是由字符运算符将字符型数据连接起来的表达式,其运算结果仍然是字符型数据。字符运算符有:+、-+:前后两个字符串连接形成一个新的字符串。-:前后两个字符串连接,并把前字符串的尾部空格移到连接后的字符串尾部。【例2.6】字符串连接?数据库+管理?数据库-管理,2-4-3日期与日期时间表达式,日期与日期时间表达式是由日期运算符将日期或日期时间数据连接起来的表达式,其运算结果是日期或日期时间数据,也可以是数值型数据。日期运算符有:+、-合法的日期时间表达式如下表所示。,【例2.7】日期运算?2003/05/08+15?2003/05/08-2003/03/15?2003/05/08,10:35:10am+120,2-4-4关系表达式,关系表达式是由关系运算符将两个运算对象连接起来的式子,即:,其运算结果是逻辑型数据.T.或.F.。关系运算符见下表所示。,说明:关系运算符两边表达式的数据类性必须相同。,【例2.8】关系运算?1015,abc2003/03/15,.t.f.?ab$abd,北京大学$大学SETEXACTOFF?数据库系统=数据库?数据库=数据库系统?数据库=数据库系统SETEXACTON?数据库系统=数据库?数据库=数据库系统?数据库=数据库系统,2-4-5逻辑表达式,逻辑表达式是由逻辑运算符将逻辑型数据连接起来的表达式,其运算结果仍然是逻辑数据.T.或.F.。逻辑运算符及优先级为:.NOT.或!、.AND.、.OR.逻辑运算规则见下表所示。,注意:逻辑运算符两边的点可以省略,即可写成NOT、AND、OR。,用不同类型的运算符可写出不同类型的表达式,如果一个表达式中同时用了不同类型的运算符,则运算符的优先级顺序由高到低为:括号算术运算符字符运算符日期时间运算符关系运算符逻辑运算符。【例2.9】逻辑运算?2*56andabcabcdor122003/03/15.and.not.t.,)功能:计算的值,并按指明的位数四舍五入。说明:大于等于0,表示保留小数的位数。若小于0,表示整数部分的舍入的位数。【例2.12】?ROUND(12.625,2),ROUND(12.625,0)?ROUND(123.45,-1),ROUND(123.45,-2),4.求平方根函数格式:SQRT()功能:返回指定的数值表达式的平方根值。自变量表达式的值不能为负。【例2.13】?SQRT(81),SQRT(9.3)5.最大值函数格式:MAX(,)功能:计算各表达式的值,并返回其中的最大值。【例2.14】?MAX(-3,2*4,2*3),6.最小值函数格式:MIN(,)功能:计算各表达式的值,并返回其中的最小值。【例2.15】?MIN(-25,234,24*24)7.求余数函数格式:MOD(,)功能:返回除以后的余数。说明:的值不能为0;余数的正负号与除数相同.【例2.16】:?MOD(8,3),MOD(8,-3)?MOD(-8,3),MOD(-8,-3),8.求自然对数函数格式:LOG()功能:返回的自然对数的值。【例2.17】?LOG(25.5*4),2-5-2字符函数,1.求字符串长度函数格式:LEN()功能:返回指定值的字符个数。函数值为数值型。【例2.18】?LEN(学生+管理)2.取子串函数格式:SUBSTR(,)功能:从指定的开始,按取值的子字符串。说明:如果缺省,子串为从开始直到最后一个字符。【例2.19】?SUBSTR(学生+管理,5)?SUBSTR(学生+管理,1,4),3.产生空格函数格式:SPACE()功能:产生值指定的空格。【例2.20】?学生+SPACE(2)+管理4.大写字母转换为小写字母函数格式:LOWER()功能:将指定值中大写字母变为小写字母。【例2.21】:?LOWER(Goodmorning),5.小写字母转换为大写字母函数格式:UPPER()功能:将指定值中小写字母变为大写字母。【例2.22】?UPPER(Goodmorning)6.删除字符串尾部空格函数格式:TRIM()功能:删除指定值尾部的空格。【例2.23】?LEN(数据库)?LEN(TRIM(数据库),7.删除字符串左边空格函数格式:LTRIM()功能:删除指定值左边部分的空格。【例2.24】?学生+管理?学生+LTRIM(管理)8.删除字符串左右两边空格函数格式:ALLTRIM()功能:删除指定值左右两边的空格。【例2.25】?LEN(管理)?LEN(ALLTRIM(管理),9.取左子串函数格式:LEFT(,)功能:按值取指定值的左边子字符串。【例2.26】?LEFT(数据库管理系统,6)10.取右子串函数格式:RIGHT(,)功能:按值取指定值的右边子字符串。【例2.27】?RIGHT(数据库管理系统,4),11.子串位置测试函数格式:AT(,)功能:判断值是否是值的子串,若是,返回值的首字符在值的起始位置;若不是,则返回0。函数值为数值型。说明:值表明在中出现的次数,其默认值为1。【例2.28】?AT(管理,学生管理),12.宏替换函数格式:&().功能:替换指定的内容。说明:如果该函数与其后的字符无明确分界,则要用“.”作函数结束标识。宏替换函数可以嵌套使用。【例2.29】y=150?&y?50+&yx=创建?&x.数据库,2-5-3日期和时间函数,1.系统日期函数格式:DATE()功能:返回当前系统的日期,函数值为日期型。【例2.30】?DATE()2.系统时间函数格式:TIME()功能:返回当前系统的时间,函数值为字符型。【例2.31】?TIME(),3.系统日期时间函数格式:DATETIME()功能:返回当前系统的日期时间,函数值为日期时间型。【例2.32】?DATETIME()4.求年份函数格式:YEAR(|)功能:返回指定日期或日期时间表达式值中的年份。函数值为数值型。【例2.33】?YEAR(2003/05/28),5.求月份函数格式:MONTH(|)功能:返回指定日期或日期时间表达式值中的月份。函数值为数值型。【例2.34】?MONTH(2003/05/28)6.求天数函数格式:DAY(|)功能:返回指定日期或日期时间表达式值中的天数。函数值为数值型。【例2.35】?DAY(2003/05/28),2-5-4数据类型转换函数,1.字符转换成ASCII码函数格式:ASC()功能:将值的第一个字符转换成ASCII码值,函数值为数值型数据。【例2.36】?ASC(abc)2.ASCII码转换成字符函数格式:CHR()功能:将的值转换成ASCII码字符,函数值为字符型数据。【例2.37】?CHR(65),3.数值型转换成字符型函数格式:STR(,)功能:将的值转换成字符型数据,函数值为字符型数据。说明:字符串的长度由值确定,包括小数点和负号各占一位;值表示小数点的位数。如果值小于值的整数部分位数,则返回一串星号(*)。的默认值是10位,的默认值是0。【例2.38】X=STR(345.456,6,2)?X?VARTYPE(X)?STR(345.456,2)?STR(345.456),4.字符型转换成数值型函数格式:VAL()功能:将的值转换成相应的数值型数据。说明:若字符串内出现非数值字符,则只转换前面部分;若字符串的首字符不是数字符号,则返回数值0,但忽略前导空格。【例2.39】Y=VAL(3.15)?Y?VARTYPE(Y)?VAL(3A.15)?VAL(A3.15),5.字符型转换成日期型函数格式:CTOD()功能:将的值转换成日期型数据。【例2.40】Z=CTOD(05/28/03)?Z?VARTYPE(Z),6.日期型转换成字符型函数格式:DTOC(|,1)功能:将日期型或日期时间型数据转换成字符串。说明:选项,1表示转换格式为年月日。【例2.41】P=DTOC(CTOD(05/28/03)?P?VARTYPE(P),2-5-5测试函数,1.数据类型测试函数格式:VARTYPE()功能:测试值的数据类型,返回代表该类型数据的字符C、N、Y、L、G、D、T、X(NULL值)、U(未定义)等。【例2.42】?VARTYPE(67548)?VARTYPE(.T.),2.记录号测试函数格式:RECNO(工作区号|)功能:返回指定工作区表文件中当前记录的记录号。说明:如果缺省或,指当前表文件。【例2.43】USED:NEWBOOK学生情况表?RECNO()GO9?RECNO(),3.记录个数测试函数格式:RECCOUNT(工作区号|)功能:返回指定工作区中表文件的全部记录个数。【例2.44】USED:NEWBOOK学生情况表?RECCOUNT()&显示结果为10GOBOTTOMSKIP?RECNO(),4.表文件首测试函数格式:BOF(工作区号|)功能:测试指定工作区中表文件的记录指针是否指向文件首,即第一条记录之前。如果是,则返回逻辑真.T.;否则返回逻辑假.F.。【例2.45】USED:NEWBOOK学生情况表?BOF(),RECNO()SKIP-1?BOF(),RECNO(),5.表文件尾测试函数格式:EOF(工作区号|)功能:测试指定工作区中表文件的记录指针是否指向文件尾,即最后一条记录之后。如果是,则返回逻辑真.T.;否则返回逻辑假.F.。【例2.46】USED:NEWBOOK学生情况表GOBOTTOM?EOF()SKIP1?EOF(),6.条件测试函数格式:IIF(,)功能:测试的值,如果为.T.,返回的值;如果为.F.,返回的值。【例2.47】X=125Y=200?IIF(XY,X+100,Y-100),7.记录删除测试函数格式:DELETE(工作区号|)功能:测试指定工作区中表文件的当前记录是否有删除标记(逻辑删除),若有,返回.T.;否则返回.F.。【例2.48】USED:NEWBOOK学生情况表GO3DELETE?DELETE(),8.记录查找测试函数格式:FOUND(

温馨提示

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

最新文档

评论

0/150

提交评论