VFP复习5表达式、函数.ppt_第1页
VFP复习5表达式、函数.ppt_第2页
VFP复习5表达式、函数.ppt_第3页
VFP复习5表达式、函数.ppt_第4页
VFP复习5表达式、函数.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第2章数据与数据运算,常量和内存变量的类型,数据表的字段类型,VFP的基本数据类型,常量:变量:内存变量和字段变量,变量,1.内存变量赋值,STORETO可为多个变量赋相同值=只能为一个变量赋值,【例】STORE20TOX,Y,Z学号=08021927,注意STORE命令不能把若干不同的值赋给若干个变量。【例】STORE20,30TOX,YSTORE20TOX,30TOY,错误,2.变量的清除,【格式1】CLEARMEMORY清除所有内存变量。,【格式2】RELEASE清除指定内存变量,各内存变量名之间用半角逗号分开。,注意:当内存变量与字段变量同名时,直接使用变量名访问,则系统默认为字段变量。若要访问内存变量,必须在变量名前加前缀M.(或M-),如:M.姓名。,字段变量,9假设职员表已在当前工作区打开,其当前记录的“姓名”字段值为“张三”(字符型,宽度为6)。在命令窗口输入并执行如下命令:姓名=姓名-“您好”?姓名那么主窗口中将显示A)张三B)张三您好C)张三您好D)出错,姓名为字段变量,不能用=赋值,?M.姓名,张三您好,(1)算术运算符(2)求余运算%和函数MOD()作用相同,结果的正负号与除数一致.例:mod(x,y),一、数值表达式,3,符号相同:结果为余数,正负取决于除数符号不同:结果为除数-余数,正负取决于除数,?15%4,15%-4,mod(15,4),mod(15,-4),mod(-15,-4),mod(-15,4),-1,3,-1,-3,1,二、字符表达式,+:前后两个字符串首尾连接形成一个新的字符串-:连接两个字符串,将前串尾部空格移到合并后新串尾部,【例】字符串运算示例(注:表示空格)a=hellob=teacher!?a+b,a-b输出结果:helloteacher!helloteacher!,字符定界符:“沈阳”沈阳沈阳,严格日期格式:yyyy-mm-dd传统日期格式:月、日各2位,年可以2位可以4位。08-23-10(1)影响日期格式的设置命令SETMARKTO&默认斜杠/分隔符SETDATETOMDY|DMY|YMD(2)设置日期显示格式SETCENTURYON|OFF|TOROLLOVERon:显示世纪,4位表示年份。Off:不显示世纪,2位表示年份。TO子句:决定一个用2位数字年份表示的日期所处的世纪.若=世纪值不变若世纪值+1,日期型常量D,定界符:常用分隔符:/-.空格,例1:设置不同的日期格式SETCENTURYONSETMARKTOSETDATETOYMD?2008-09-10,例2:设置不同的日期格式SETCENTURYOFFSETMARKTO.SETDATETOMDY?2008-09-10,2008/09/10,例3:执行下列命令后输出的结果SETDATETOYMDSETCENTURYONSETCENTURYTO19ROLLOVER10SETMARKTO.?CTOD(49-05-01),09.10.08,1949.05.01,?CTOD(08-05-01),2008.05.01,三、日期或日期时间表达式,日期加数字(数字加日期)表示在该日期后几天的日期?3+2008/03/0103/04/08日期减数字表示在该日期前几天的日期?2008/03/01-202/28/08日期减日期表示两个日期间相差的天数(数值型)?2008/03/01-2008/02/0525,日期时间型-日期时间型&结果为秒数日期时间型+或-秒数&允许日期+日期&非法表达式,四、关系表达式,关系运算符,(1)日期、日期时间型比较:越早的日期或时间越小。(2)逻辑型数据比较:.T.F.(3)字符串(默认按拼音排序):空格09aAbBzZ,=,或#或!=,$(字符串包含),=(字符串全等比较),子串包含运算$:【格式】$如果字符串表达式1是字符串表达式2的一个子串,即一部分,结果为真,否则为假。【例】子串包含运算?教育学$高等教育学?教学$高等教育学?高等教育学$教育学,输出结果:.T.F.F.,设置字符串比较的状态,1.=(两边必须完全一样,才相等):?abc=abc?abc=ab?ab=ab,3.字符串模糊比较:(两边一样,或右串是左串的左子串,相等)默认状态下或setexactoff?abc=abc?abc=ab?a=abc,2.setexacton&两个字符串去掉空格后比较?ab=ab?abc=ab,.T.F.F.,.T.F.,.T.T.F.,(1)ABC$ACBABC$ABXYCPKAB$CDABEFGH“二级考试$二级01/05/98高),1.取绝对值函数ABS(N)例?ABS(-123)&1232.平方根函数SQRT(N)?SQRT(123)&11.09,数值函数,INT():求N的整数部分(不四舍五入)FLOOR():求N的最大整数CEILING():求N的最小整数,N=3.6?int(n),floor(n),ceiling(n)?int(-n),floor(-n),ceiling(-n),34,-3-4-3,3.取整函数,数值函数,4.最大值函数MAX(N1,N2):求两个数字表达式中最大值,也可以比较字符型或日期型值。?max(123,342)?Max(“fish”,”dog”,”cat”),5.最小值函数MIN(N1,N2):求两个数字表达式中最小值,也可以比较字符型或日期型值。?min(123,342)?min(”fish”,”dog”,”cat”),&342,&fish,&123,&cat,7.符号函数SIGN():求N的符号,?sign(3),sign(0),sign(-3),10-1,6.舍入函数ROUND(N,M):对保留位小数,舍入,?ROUND(12.647,2),ROUND(12.647,-1),12.6510,1.左字符串截取函数:left(串,n)对串从左截取n个字符?Left(“abcdefghij”,4),字符串函数,2.右字符串截取函数:right(串,n)对串从右截取n个字符?right(“abcdefghij”,4),3.中间截取子字符串:substring(串,m,n)对串从m位起截取n个字符。?Subs(“abcdefghij”,5,4)?Subs(“沈阳师范大学”,5,4),&abcd,&ghij,&efgh,&师范,4.生成空格函数SPACE(N)产生个空格?“同学们”SPACE(8)+”晚上好!”,同学们晚上好!,字符串函数,5.删除空格函数:LTRIM():删除C的左端空格RTRIM():删除C的右端空格ALLTRIM():删除C的左、右端空格,?ab+LTRIM(cd)?RTRIM(ab)+cd?a+ALLTRIM(b)+cd,abcdabcd,6.求字符串长度:LEN()求串C的长度,?LEN(ABC)?LEN(函数)?LEN(SPACE(5)?LEN(SPACE(0),3450,8.子字符串检索函数:AT(,):从N位置开始求C1在C2中第一次出现的位置,省略N则从1开始起,不出现结果为ATC(,):不区分大小写,STOREabcdekaacbkjctos?occurs(a,s),occurs(b,s),occurs(s,s),occurs(e,s),?AT(C,ACB)?AT(B,ABAB,3),24,7.子字符串出现次数OCCURS(,):求串1在串2中出现的次数,数值型.,3201,10.大小写转换函数UPPER():把C转换成大写LOWER():把C转换成小写,例:UPPE(“abCD”)LOWER(“abCD”),ABCDabcd,9.字符串匹配函数:LIKE(,):比较串1和串2对应位置上的字符串,若匹配,则为.T.,串1中可以包含通配符?和*.,x=abcy=abcd?like(ab*,x),like(x,y),.T.F.,11.宏替换函数:字符型变量,例:x=”2001”?&x+5?”&x+5”?&x.5,&2006,&2001+5,&20015,替换字符型变量的内容。即函数值是变量中的内容。用圆点将圆点后的字符串附在宏代换函数返回值之后。,DB=“课程”Use&DB&use课程Use&DB.dbf&use课程dbfUseT&DB&useT课程,日期函数,DATE():系统当前日期日期型TIME():系统当前时间字符型DATETIME()日期时间型,YEAR(表达式):取日期表达式的年份值MONTH(表达式):取日期表达式的月份值DAY(表达式):取日期表达式在月份中的天数值,?Year(date()?Month(date()?day(date(),?date(),time(),datetime(),201091,类型转换函数,VAL():C型数据转换成N型数据,遇到字母不转换。保留两位小数,?VAL(23.7)?VAL(2+3),23.702.00,STR(数值,长度,小数位):数值转成字符函数(四舍五入),CTOD():将字符表达式值转换成日期型数据DTOC():将日期型数据转换成字符串,N=-123.456?str(n,9,2),str(n,6,2),str(n,3),str(n,6)-123.46-123.5*-123,长度数值整数位小数位数1(小数点)长度数值位数左补空格长度数值的整数位数输出一串长度优先满足整数部分,测试函数,值域测试函数:BETWEEN(表达式1,表达式2,表达式3)若:表达式2=表达式1=表达式3,返回.T.?BETWEEN(150,100,300),BETWEEN(150,300,100),BETWEEN(100,150,300).T.F.F.,空值(NULL)测试函数:ISNULL(表达式):只有表达式为.NULL.或NULL时,结果为.T.?ISNULL(.NULL.),“空”测试函数:EMPTY(表达式):当表式为数值0、逻辑值.F.和空字符串或任意多个空格字符串等值时结果为.T.,.T.,例:运算结果为真的是A)EMPTY(.NULL.)B)LIKE(XY?,XYZ)C)AT(XY,ABCXYZ)D)ISNULL(SPACE(0),B,数据类型测试函数:VARTYPE(表达式):以一个大写字母的形式返回表达式的类型N,C,Y,L,T,X:Null值U:未定义,4.设X=10,语句?VARTYPE(X)的输出结果是A)NB)CC)10D)X,13设X=65,命令?VARTYPE(X)的输出是:A)NB)CC)LD)出错,条件测试函数:IIF(,),逻辑表达式值为.t.结果为表达式的值,否则为表达式的值,?Iif(len(spac(5)5,1,-1),-1,文件尾测试函数:EOF(工作区号|表别名):测试表文件中的记录指针是否指向文件尾文件头测试函数:BOF(工作区号|表别名):测试表文件中的记录指针是否指向文件首记录号测试函数:RECNO(工作区号|表别名):返回指定表文件中当前记录的记录号记录个数测试函数:RECCOUNT(工作区号|表别名):返回指定表文件中的记录个数记录删除测试函数:DELETED(工作区号|表别名):测试指定表文件中当前记录是否有删除标记,1.数组:名字相同而下标不同的内存变量,数组元素下标的起始值为1。一维数组(一个下标)A(2)A(1)A(2)A(5)A(1)A(2)A(3)A(4)A(5)二维数组(两个下标)Y(2,3),数组,2、数组的定义:DIMENSION(,)DECLARE(,)例1DIMEM(2,3),N(4),3、数组的赋值数组生成后,系统自动赋予逻辑假值。,a.单个赋值:DIMEA(3)A(1)=5A(2)=AA(3)=00/02/03,b.为整个数组赋值:DIMEB

温馨提示

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

评论

0/150

提交评论