《第3章的基本语法PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第3章的基本语法PPT讲稿.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章的基本语法第1页,共69页,编辑于2022年,星期一教学目标教学目标掌握掌握VFPVFP中数据类型及变量的分类中数据类型及变量的分类;掌握变量的命名及表达式运算;掌握变量的命名及表达式运算;掌握内存变量的操作;掌握内存变量的操作;熟悉熟悉VFP函数的使用。函数的使用。双语课堂双语课堂双语课堂双语课堂C C C C重点与难点:数据及变量的类型;使用逻辑表达式描述复合数据及变量的类型;使用逻辑表达式描述复合条件;类型转换函数及状态测试函数。条件;类型转换函数及状态测试函数。第2页,共69页,编辑于2022年,星期一3.1常量与变量常量与变量第3页,共69页,编辑于2022年,星期一一一.常量
2、常量表示一个具体的、不变的值。不同类型的常量有不同的书写格式。表示一个具体的、不变的值。不同类型的常量有不同的书写格式。1.字字符符型型常常量量用用定定界界符符(单单引引号号、双双引引号号和和方方括括号号)括括起起来来的的字字符符串串。可可以以是是26个个英英文文大大小小写写字字母母、10个个阿阿拉拉伯伯数数字字、各各种种汉字、专用符号和空格等,最大长度可达汉字、专用符号和空格等,最大长度可达254个字符。个字符。示例:示例:“ade”,568,“book的中文意思是的中文意思是书书。”注注意意:如如果果将将阿阿拉拉伯伯数数字字定定义义为为字字符符串串时时,它它不不具具备备数数学学上上的的数数
3、值值含义,不能参加数学运算,如电话号码,邮编等。含义,不能参加数学运算,如电话号码,邮编等。注注意意:字字符符定定界界符符必必须须成成对对的的出出现现。如如果果字字符符串串中中包包含含一一种种定定界界符符,则则必必须须用用另另一一种种定定界界符符括括起起来来。如如:“计计算算机机”,双引号为字符定界符,其中的方括号为字符串。双引号为字符定界符,其中的方括号为字符串。第4页,共69页,编辑于2022年,星期一例如:在主窗口中显示几个字符常量例如:在主窗口中显示几个字符常量?“计算机计算机”,123123,数据数据,ABXABX “abcabc”?“学习学习”,字符串字符串,“”,表示方法表示方法
4、 注意注意,不包括任何字符的字符串不包括任何字符的字符串(“”)叫空串叫空串.空串与包含空格的字符串空串与包含空格的字符串(“”)不同不同.第5页,共69页,编辑于2022年,星期一2.数数值值型型常常量量用用来来表表示示一一个个数数量量的的大大小小,可可以以进进行行算算术术运运算算。包含包含09的阿拉伯数字、小数点与正负号,最大长度为的阿拉伯数字、小数点与正负号,最大长度为20位。位。示例:示例:538,10.5,5.87E12,1.6E123.逻辑型常量逻辑型常量只有逻辑真和逻辑假两个值,只有逻辑真和逻辑假两个值,逻辑真的表示形式有:逻辑真的表示形式有:.T.、.t.、.Y.和和.y.逻辑
5、假的表示形式有:逻辑假的表示形式有:.F.、.f.、.N.和和.n.逻辑型数据长度固定为逻辑型数据长度固定为1位,占用位,占用1个字节。个字节。第6页,共69页,编辑于2022年,星期一4.日期型常量日期型常量表示一个确切的日期,用表示一个确切的日期,用大括号大括号作为定界符。作为定界符。1)传统的日期格式:传统的日期格式:mm/dd/yy,受设置命令的影响。,受设置命令的影响。2)严严格格的的日日期期格格式式:YYYY-MM-DD,不不受受设设置置命命令令的的影影响响,能能表达一个确切的日期。表达一个确切的日期。示例示例:10/08/06,2006-08-06严严格格的的日日期期格格式式可可
6、以以在在任任何何情情况况下下使使用用,而而传传统统的的日日期期格格式式只能在只能在SETSTRICTDATETO0 状态下使用。状态下使用。第7页,共69页,编辑于2022年,星期一3)3)影响日期格式的设置命令影响日期格式的设置命令SETMARKTO日期分隔符日期分隔符SETDATETOymdmdy等等SETCENTURYON|OFF&设置年份位数设置年份位数SETSTRICTDATETO0|1&是否进行严格的日期格式检查是否进行严格的日期格式检查0:检查检查严格日期格式严格日期格式1:不检查不检查传统日期格式传统日期格式2:检查,并且对检查,并且对CTOD()和和CTOT()也有效也有效第
7、8页,共69页,编辑于2022年,星期一5.5.日日期期时时间间型型常常量量包包括括日日期期和和时时间间两两部部分分内内容容,用用来来描述日期和时间。描述日期和时间。示例示例:05/16/9912:00:006.货货币币型型常常量量用用来来表表示示货货币币值值,在在数数字字前前加加一一个个符符号号($)。存储和计算时采用存储和计算时采用4位小数,多余小数位四舍五入。位小数,多余小数位四舍五入。示例:示例:$123.4567第9页,共69页,编辑于2022年,星期一二二.变量变量在在使使用用过过程程中中其其值值可可以以改改变变的的量量。VFP的的变变量量分分为为字字段段变变量量和和内内存存变变量
8、量两大类。内存变量又包括简单内存变量、系统内存变量和数组变量。两大类。内存变量又包括简单内存变量、系统内存变量和数组变量。1.字段变量字段变量 字字段段变变量量对对应应于于数数据据表表中中的的字字段段,是是在在建建立立数数据据表表文文件件时时定定义义的的,数数据据表表中中的的每每一一个个字字段段都都是是一一个个字字段段变变量量,以以字字段段名名标标识识。字字段段变变量量必必须须依依附附于于数数据据表表,存存在在于于数数据据表表文文件件中中,随随着着数数据据表表的的打打开开而而生生效效,随着数据表的关闭而撤消,随着数据表的关闭而撤消,2.简单内存变量简单内存变量内内存存中中的的一一个个存存储储区
9、区域域,是是一一种种临临时时工工作作单单元元,常常被被用用来来存存储储所所需需要要的的常常数数、中中间间结结果果或或最最终终结结果果。变变量量名名由由汉汉字字、字字母母、数数字和下划线组成字和下划线组成,必须由字母或汉字开头必须由字母或汉字开头。第10页,共69页,编辑于2022年,星期一(1)内存变量的命名规则:)内存变量的命名规则:由字母、汉字、数字或下划线组成。由字母、汉字、数字或下划线组成。以字母、汉字或下划线开头。以字母、汉字或下划线开头。长度为长度为1128个字符,每个汉字占两个字符。个字符,每个汉字占两个字符。不能使用不能使用VFP的保留字。的保留字。当当内存变量名与字段变量名相
10、同内存变量名与字段变量名相同时,字段名优先于内存变量名,时,字段名优先于内存变量名,使用时可以在内存变量名前加上使用时可以在内存变量名前加上M.(或(或M)以示区别,但赋值时)以示区别,但赋值时不能使用前缀。不能使用前缀。例:例:?M.姓名姓名&表示内存变量表示内存变量第11页,共69页,编辑于2022年,星期一内存变量的赋值命令内存变量的赋值命令STORETO 格式一格式一命令动词命令动词去向子句去向子句包含值的表达式包含值的表达式接收值的变量名表接收值的变量名表STORE0TOAA,BB,CC&数值数值0赋给变量赋给变量AA,BB,CCSTORE“李磊李磊”TONAME&字符串字符串“李磊
11、李磊”赋给赋给NAME例例格式二格式二=接收值的变量名接收值的变量名赋值操作符赋值操作符包含值的表达式包含值的表达式例例A=.T.将逻辑真值赋给变量将逻辑真值赋给变量A第12页,共69页,编辑于2022年,星期一功能注释功能注释:(1 1)等号等号一次只能给一个内存变量赋值。一次只能给一个内存变量赋值。(2 2)StoreStore命令命令可以同时给若干个变量赋予相同的值,各可以同时给若干个变量赋予相同的值,各内存变量名之间必须用逗号分开。内存变量名之间必须用逗号分开。(3 3)在)在vfpvfp中,变量使用之前并不需要特别的声明和定中,变量使用之前并不需要特别的声明和定义。义。(4 4)内存
12、变量在赋值时定义了它的值及类型,其类型)内存变量在赋值时定义了它的值及类型,其类型与所赋值的类型相同。与所赋值的类型相同。(5 5)命令后的符号命令后的符号&,表示该符号后跟随的是本命令行,表示该符号后跟随的是本命令行的注释,与命令执行无关。的注释,与命令执行无关。第13页,共69页,编辑于2022年,星期一3.3.3.3.内存变量的显示内存变量的显示内存变量的显示内存变量的显示;命令格式一命令格式一命令格式一命令格式一 LISTMEMOTOPRINTLISTMEMOTOPRINTDISPLAYMEMOTOPRINTDISPLAYMEMOTOPRINT 例例例例listmemolistmemo
13、 命令格式一命令格式一命令格式一命令格式一?/?/?功能计算表达式的值,并将其显示在屏幕上。功能计算表达式的值,并将其显示在屏幕上。?表示从屏幕下一行的第一列显示结果?表示从屏幕下一行的第一列显示结果?表示从当前行的当前列显示结果?表示从当前行的当前列显示结果例如:例如:S=“visiual”P=“foxpro”?s?p第14页,共69页,编辑于2022年,星期一例如例如 在命令窗口键入的命令和主屏显示的内容如下:在命令窗口键入的命令和主屏显示的内容如下:s=s=“vfpvfp”&用字符串用字符串vfpvfp赋给变量赋给变量S S,结果,结果S S的值为的值为vfp,vfp,并并成为字符型变量
14、成为字符型变量y=500&y=500&用数值型常量用数值型常量500500赋值内存变量赋值内存变量stor 24 to x1,x2&stor 24 to x1,x2&对两个内存变量赋相同的值对两个内存变量赋相同的值stor.t.to q&stor.t.to q&用逻辑常量赋值内存变量用逻辑常量赋值内存变量q q?s,y,x1,x2,q?s,y,x1,x2,q 第15页,共69页,编辑于2022年,星期一2.数组数组 数组数组 是按一定顺序排列的一组内存变量,数组中的各是按一定顺序排列的一组内存变量,数组中的各个变量称为数组元素。每个数组元素可通过数组名及个变量称为数组元素。每个数组元素可通过数
15、组名及相应的下标来访问。相应的下标来访问。数组必须先定义后使用。数组必须先定义后使用。说明:说明:由若干单下标变量组成的数组称为一维数组,由若由若干单下标变量组成的数组称为一维数组,由若干双下标变量组成的数组称为二维数组。干双下标变量组成的数组称为二维数组。在在VisualFoxPro 中,只允许使用一维数组或二维数组。中,只允许使用一维数组或二维数组。一维数组:一维数组:各个元素按线性排列;各个元素按线性排列;二维数组:二维数组:类似于一个数据表,第一维是行,第二维是列类似于一个数据表,第一维是行,第二维是列。第16页,共69页,编辑于2022年,星期一定义数组定义数组在使用数组时一定要先定
16、义在使用数组时一定要先定义,有两条命令可以定义数组。,有两条命令可以定义数组。格式一格式一格式二格式二DIMENSION(,),(,)DECLARE(,),(,)功能:功能:定义一个或多个一维或二维的内存变量数组。定义一个或多个一维或二维的内存变量数组。参数描述:参数描述:DIMENSION和和DECLARE为定义数组的命令动词。为定义数组的命令动词。:指定数组的名称,其规定与内存变量名相同。:指定数组的名称,其规定与内存变量名相同。(,):定义数组的维数和大小):定义数组的维数和大小。说明:说明:1、数组的下标的起始值为数组的下标的起始值为。2、同一数组中的数组元素可以有不同的数据类型、同一
17、数组中的数组元素可以有不同的数据类型。3、二维数组中各元素按行的顺序依次排列、二维数组中各元素按行的顺序依次排列。第17页,共69页,编辑于2022年,星期一4、每个数组占用一个内存变量、每个数组占用一个内存变量。5、除了可以分别对数组元素赋值以外,也可对数组中的所有元素赋同、除了可以分别对数组元素赋值以外,也可对数组中的所有元素赋同一初值一初值。6、DIMENSION和和DECLARE功能完全相同,常用功能完全相同,常用DIMENSION。例如:例如:DIMENSION(,),(,)DIMENSIONA(2,3),B(4,8)也可以一次只定义一个数组:也可以一次只定义一个数组:DIMENSI
18、ONA(2,3)也可以只定义一维数组:也可以只定义一维数组:DIMENSIONA(6)第18页,共69页,编辑于2022年,星期一(2)示例:dimension x(5),y(2,3)一维数组一维数组x含含5个元素:个元素:x(1),x(2),x(3),x(4)x(5).二维数组二维数组Y含含6个元素:个元素:y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3)可以用一维数组表示二维数组分别为可以用一维数组表示二维数组分别为:y(1),y(2),y(3),y(4),y(5),y(6)第19页,共69页,编辑于2022年,星期一数组元素的赋值操作数组元素的赋值操作S
19、TORETO格式一格式一命令动词命令动词去向子句去向子句包含值的表达式包含值的表达式接收值的数组名或元素接收值的数组名或元素STORE0TOA将数值将数值0赋给数组赋给数组A的所有元素的所有元素STORE李磊李磊TOA(2,1)将字符串将字符串“李磊李磊”赋给数组赋给数组A的第的第2行第行第1列的元素。列的元素。例例格式二格式二=接收值的数组名或元素接收值的数组名或元素赋值操作符赋值操作符包含值的表达式包含值的表达式例例A=.T.将逻辑真值赋给数组将逻辑真值赋给数组A的所有元素的所有元素第20页,共69页,编辑于2022年,星期一【例例2.32.3】定义数组,并给数组赋值。定义数组,并给数组赋
20、值。DIMENSION Y(3),X(2,2)DIMENSION Y(3),X(2,2)Y=123Y=123X(1,1)=345X(1,1)=345X(1,2)=abcX(1,2)=abcX(2,1)=2003-03-25X(2,1)=2003-03-25X(4)=.T.X(4)=.T.?Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4)?Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4)第21页,共69页,编辑于2022年,星期一3.2运算符与表达式运算符与表达式第22页,共69页,编辑于2022年,星期一运算符运算符:是对数据对象是对数据对象(操作数操作
21、数)进行操作运算的符号。进行操作运算的符号。运算符以其结果的运算符以其结果的类型类型分组有如下五类分组有如下五类:算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符字符串运算符字符串运算符日期运算符日期运算符1、算术运算符、算术运算符:操作数和运算的结果都是数值操作数和运算的结果都是数值(1 1)+加号加号 (2 2)-减号减号 (3 3)*乘号乘号 (4 4)/除号除号 (5 5)或或*乘方乘方 (6 6)%余数余数%取模取模,取两数相除的余数,取两数相除的余数?17%5结果为结果为2和和*乘方乘方?23结果为结果为8运算的顺序:是先乘方运算的顺序:是先乘方-乘除乘除-加减,若有括
22、号先内后外。加减,若有括号先内后外。第23页,共69页,编辑于2022年,星期一4.4.关系运算符:关系运算符:小于小于()、等于、等于(=)、不等于、不等于(、#或或!=!=)、小于等于小于等于(=)、字符串包含字符串包含($)、字符串精确比较、字符串精确比较(=)。说明:说明:(1)运运算算符符=和和$仅仅适适用用于于字字符符型型数数据据。其其他他运运算算符符适适用用于于任任何何类型的数据,但前后两个运算对象的数据类型类型的数据,但前后两个运算对象的数据类型必须一致必须一致。数值型和货币型数据比较数值型和货币型数据比较:按数值的大小比较,包括负号。按数值的大小比较,包括负号。日期或日期时间
23、型数据比较日期或日期时间型数据比较:越早的日期或时间越小,越晚的日期或时间越大。越早的日期或时间越小,越晚的日期或时间越大。第24页,共69页,编辑于2022年,星期一注意:关系运算符两边操作数类型必须一致,比较的结果注意:关系运算符两边操作数类型必须一致,比较的结果是逻辑植。是逻辑植。数值数据按数值大小比较数值数据按数值大小比较?56(f)?56(f)日期型数据按年月日的先后进行比较日期型数据按年月日的先后进行比较?12/31/9912/31/01(f)?12/31/9912/31/01(f)字符型数据是按相应位置上两个字符的字符型数据是按相应位置上两个字符的ASCIIASCII码值进行比较
24、码值进行比较 “ABCABC”AAAAAAAA”(T),(T),“ABCABC”=“ABAB”(T)(T)“ABCABC”=“ABAB”(F),(F),:包含,左串是右串的子串为真包含,左串是右串的子串为真?BC$ABCD(T)?BC$ABCD(T)第25页,共69页,编辑于2022年,星期一3、逻辑运算逻辑运算,运算结果是逻辑值运算结果是逻辑值 NOT(!):取反运算,(!):取反运算,即:即:NOT.T.=.F.NOT.F.=.T.AND.逻辑与逻辑与.T.AND”ABC”AB”(T).OR.逻辑或逻辑或.T.OR34(T)4 4、字符运算符、字符运算符:用于连接两个字符串:用于连接两个字
25、符串:用于连接两个字符串,并将前面一个字符串:用于连接两个字符串,并将前面一个字符串 尾部的空格移到结果字符串的尾部。尾部的空格移到结果字符串的尾部。例如:例如:a=hellob=everyone!?a+b,a-b第26页,共69页,编辑于2022年,星期一例:例:使用逻辑表达式描述使用逻辑表达式描述复合条件复合条件条件一条件一:“自动化专业的女团员自动化专业的女团员”专业专业“自动化自动化”AND性别性别=女女AND团员团员条件二条件二:“未婚的女职工未婚的女职工”NOT婚否婚否AND性别性别=女女条件三:条件三:“职称为工程师或部门为技术科的男职工职称为工程师或部门为技术科的男职工”(职称
26、职称=“工程师工程师”OR部门部门=“技术科技术科”)AND性别性别=男男第27页,共69页,编辑于2022年,星期一例如:例如:“ABCl23”+“666xyz”连接后结果为:连接后结果为:ABCl23666xyz“计算机计算机”+“世界世界”连接后结果为:连接后结果为:“计算机世界计算机世界”“ABC”-“DEFG”连接后结果为:连接后结果为:ABCDEFG“ABC”“DEFG”连接后结果为:连接后结果为:ABCDEFG第28页,共69页,编辑于2022年,星期一“+”运算符与运算符与“”运算符的区别运算符的区别:A BeBFA BeBFA BeBF+A BeBF第29页,共69页,编辑于
27、2022年,星期一5 5 日期时间表达式的格式日期时间表达式的格式+日期型日期型,指定日期若干天指定日期若干天后后的日期的日期-日期型日期型,指定日期若干天指定日期若干天前前的日期的日期-数值型数值型,两个指定日期相两个指定日期相差差的天数的天数2001-03-19+102001-03-19-3652001-03-1912:10:10-2001-03-1911:10:102001-03-1910:10:10am+10设置日期格式的几个命令设置日期格式的几个命令:Setstrictdateto0严格日期的格式严格日期的格式Setstrictdateto1传统日期的格式传统日期的格式Setcent
28、uryon/off年份前含有世纪年份前含有世纪/不含世纪不含世纪第30页,共69页,编辑于2022年,星期一算术运算符算术运算符最最高高级级*或或(乘方)(乘方)*、/、和、和%(乘、除和余数)(乘、除和余数)和和(加和减)(加和减)和和(直接连接和去(直接连接和去空连接)空连接)和(加和减)和(加和减)日期运算符日期运算符 关系运算符关系运算符、=、=、#、!=、$、=各运算符优先级相同各运算符优先级相同次次高高级级逻辑运算符逻辑运算符NOT或!(逻辑非)或!(逻辑非)AND(逻辑与)(逻辑与)OR(逻辑或)(逻辑或)最最低低级级字符串运算符字符串运算符第31页,共69页,编辑于2022年,
29、星期一 例如:数值表达式例如:数值表达式?(1/60-3/56)*18.54?(1+2(1+2)/(2+2)?15%4Stor122tox,yZ=73?x%z,mod(x,z)混合表达式中,混合表达式中,算术运算符算术运算符优先于优先于关系运算符关系运算符,关系运算符优先于关系运算符优先于逻辑运算符。逻辑运算符。例如:例如:“ABC”$”AD”OR(1+2)366第32页,共69页,编辑于2022年,星期一3.3VisualFoxPro的常用函数的常用函数第33页,共69页,编辑于2022年,星期一函函数数名名起起标标识识作作用用;参参数数是是自自变变量量,写写在在括括号号内内,当当有有多多个
30、个参参数数时时,各各个参数之间用逗号分隔;括号中没有参数的函数称为无参函数。个参数之间用逗号分隔;括号中没有参数的函数称为无参函数。每个函数运算后都会返回一个值,称为函数值,无参函数也不例外,每个函数运算后都会返回一个值,称为函数值,无参函数也不例外,函数值会因参数值而异。函数值会因参数值而异。函数的三个要素函数的三个要素:函数名函数名参数参数函数值函数值函数名(函数名(函数名(函数名(参数参数参数参数1 1,参数,参数,参数,参数2 2 )函数的一般格式:函数的一般格式:第34页,共69页,编辑于2022年,星期一1.1.宏替换函数宏替换函数格式格式:&.示例:示例:aa=“bb”bb=“北
31、京北京”?aa,bb,&aa?“&bb.是中国的首都是中国的首都”&用用“.”作为内存变量的结束符作为内存变量的结束符n=“567.83”?356.08+&n注意:注意:如果如果&后不跟有效的内存变量名,则后不跟有效的内存变量名,则&只是一个字符只是一个字符一一.字符处理函数字符处理函数第35页,共69页,编辑于2022年,星期一2.2.计算字符串长度函数计算字符串长度函数LEN()LEN()格式格式:LEN()示例:示例:?LEN(“x+y=?”)&结果为结果为5?LEN(“VisualFoxPro程序设计程序设计)&结果为结果为213.3.生成空格函数生成空格函数SPACE()SPACE(
32、)格式:格式:SPACE()示例:示例:?“湖北湖北”+SPACE(3)+“武汉武汉”&湖北湖北武汉武汉第36页,共69页,编辑于2022年,星期一取左子串:取左子串:LEFT(,)取右子串:取右子串:RIGHT(,)取任意子串:取任意子串:SUBSTR(,)“12345.6789”“789”“1234”“5.6”?RIGHT(C,3)变量变量C?LEFT(C,4)?SUBSTR(C,5,3)4.4.截取子串函数截取子串函数第37页,共69页,编辑于2022年,星期一格式格式:AT(,)功能:功能:AT(,)返回返回 在在 中中第一次第一次出现的起始位置。出现的起始位置。AT(,)返回返回 在
33、在中中第第n n次次出现的起始位置。出现的起始位置。“This is a example.”?AT(is,C)?AT(is,C ,2)36变量变量C5.5.求子串位置函数求子串位置函数 第38页,共69页,编辑于2022年,星期一7.7.重复字符串函数重复字符串函数REPLICATE()REPLICATE()格式:格式:REPLICATE(,)示例:示例:?REPLICATE(*,3)&*6.6.计算子串出现次数函数计算子串出现次数函数 OCCURS()OCCURS()格式:格式:OCCURS(,)示例:示例:?OCCURS(is,Thisisaexample)&结果为结果为3?OCCURS(
34、as,Thisisaexample)&结果为结果为0第39页,共69页,编辑于2022年,星期一8 8字符串替换函数字符串替换函数STUFF()STUFF()格式:格式:STUFF(,,)示例:示例:?STUFF(computer,3,4,”abc”)&结果为结果为”coabcer”?STUFF(computer,3,1,”abc”)&结果为结果为”coabcputer”第40页,共69页,编辑于2022年,星期一9.9.字符替换函数字符替换函数 CHRTRAN()CHRTRAN()格式:格式:CHRTRAN(,)示例:示例:?CHRTRAN(ABACAD,”ACD”,”X12”)&结果为结果
35、为”XBX1X2”?CHRTRAN(计算机计算机ABC,”计算机计算机”,”电脑电脑”)&结果为结果为”电脑电脑ABC”10.10.字符串匹配函数字符串匹配函数 LIKE()LIKE()格式:格式:LIKE(,)2)示例:示例:?LIKE(”AB*”,”ABCDEFG”)&结果为结果为.T.第41页,共69页,编辑于2022年,星期一11.11.删除前后空格函数删除前后空格函数格式格式:TRIM()LTRIM()ALLTRIM()示例:示例:SS=SPACE(1)+“TEST”+SPACE(3)?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)&TESTTESTTEST?LEN(S
36、S),LEN(TRIM(SS)&85?LEN(LTRIM(SS),LEN(ALLTRIM(SS)&74第42页,共69页,编辑于2022年,星期一12.12.大小写字母转换函数大小写字母转换函数格式:格式:LOWER()UPPER()示例:示例:?LOWER(“AaBbCc”)&结果为结果为aabbcc?UPPER(VisualFoxPro)&结果为结果为VISUALFOXPRO第43页,共69页,编辑于2022年,星期一 1.1.绝对值和符号函数绝对值和符号函数 格式:格式:ABS()SIGN()示例:示例:?ABS(3.456)&结果为结果为3.456?ABS(-12*5)&结果为结果为6
37、0二二二二.数值处理函数数值处理函数数值处理函数数值处理函数 第44页,共69页,编辑于2022年,星期一2.求整数函数求整数函数3.平方根函数平方根函数4.自然指数函数自然指数函数5.对数函数对数函数6.圆周率函数圆周率函数7.四舍五入函数四舍五入函数8.求模求模(余数余数)函数函数9.正弦函数正弦函数10.余弦函数余弦函数11.求最大值和最小值函数求最大值和最小值函数示例:示例:第45页,共69页,编辑于2022年,星期一1.1.系统日期和时间函数系统日期和时间函数 格式:格式:DATE()TIME()DATETIME()示例:示例:?DATE(),TIME(),DATETIME()&07
38、/05/0614:38:0607/05/0602:38:06PM三三.日期和时间函数日期和时间函数日期和时间函数日期和时间函数 第46页,共69页,编辑于2022年,星期一2.2.求年份、月份和天数函数求年份、月份和天数函数格式:格式:YEAR(|)MONTH(|)DAY(|)示例:示例:?YEAR(DATE()&2006?MONTH(DATE()&7?DAY(DATE()&5假设当前日期为假设当前日期为2006年年7月月5日日第47页,共69页,编辑于2022年,星期一CMONTH(|)功能功能:以英文形式输出日期型表达式或日期时间型表达式中的月份。以英文形式输出日期型表达式或日期时间型表达
39、式中的月份。3.3.字符月份函数字符月份函数 DOW()&返回返回17的数值的数值CDOW()&返回英文形式的星期返回英文形式的星期注意:注意:一个星期的第一个星期的第1天为天为Sunday4 4.星期星期函数函数第48页,共69页,编辑于2022年,星期一1 1.求求ASCIIASCII函数:函数:格式格式:ASC(ASC()返回返回中的中的第一个第一个字符对应的字符对应的ASCIIASCII码值。码值。2 2.求字符函数:求字符函数:格式:格式:CHR(CHR()返回返回ASCIIASCII值为值为 的字符。的字符。字符(字符(C C)字符的字符的ACSIIACSII码(码(N N)ASC
40、CHR四四四四.数据类型转换函数数据类型转换函数数据类型转换函数数据类型转换函数 第49页,共69页,编辑于2022年,星期一格式:格式:STR(STR(,小数位数小数位数)说明:说明:(1)为为转转换换后后的的字字符符串串位位数数,该该长长度度包包括括小小数数点点、负负号号。如如果果缺缺省省和和,其其输输出出结结果果将将取取固固定定长长度度为为10位位,且只取其整数部分;且只取其整数部分;(2):若若的的设设定定值值大大于于实实际际数数值值的的小小数数位位,则则转转换换后后的的字字符符串串后后补补0,若若的的设设定定值值小小于于实实际际数数值值的的小小数数位位,则则对对小小数数四四舍舍五五入
41、入;若若缺缺省省,则则转转换换后后为为整整数数,原小数部分四舍五入;原小数部分四舍五入;3 3.数值型向字符型转换函数数值型向字符型转换函数第50页,共69页,编辑于2022年,星期一(3)如如果果值值大大于于给给出出值值的的数数字字位位数数时时,在在返返回回的的字字符串左边添加空格;符串左边添加空格;(4)如如果果值值小小于于值值的的整整数数部部分分位位数数,将将返返回回一一串串星号,表示数值溢出。星号,表示数值溢出。示例:示例:n=1234.56789?STR(n,8,2)&结果为结果为1234.57?STR(n,8)&结果为结果为1235?STR(n,8,4)&结果为结果为1234.56
42、8?STR(n,12,6)&结果为结果为1234.567890?STR(n)&结果为结果为1235?STR(n,3)&结果为结果为*第51页,共69页,编辑于2022年,星期一4.4.字符串转换成数值函数字符串转换成数值函数VAL()VAL()格式:格式:VAL()说明:说明:(1)的的值值必必须须是是数数字字形形式式的的字字符符串串,它它只只能能含含有有数字、正负号和小数点数字、正负号和小数点;(2)转转换换时时,如如果果遇遇到到非非数数字字字字符符则则停停止止。如如果果字字符符表表达达式式的第一个字符即非数字字符,则转换停止,其值为的第一个字符即非数字字符,则转换停止,其值为0.00;示例
43、:示例:?VAL(“-789.123”)&结果为结果为-789.12-789.12?VAL(10A.56)&结果为结果为10.0010.00?VAL(C346.05)&结果为结果为0.000.00第52页,共69页,编辑于2022年,星期一格式:格式:CTOD()CTOT()说明:说明:(1)必须是一个有效的日期格式必须是一个有效的日期格式;(2)中中的的日日期期部部分分格格式式要要与与SETDATETO命命令令设设置置的的格式一致。格式一致。5.5.字符串转换成日期或日期时间函数字符串转换成日期或日期时间函数示例:示例:SETDATETOYMDSETCENTURYOND1=CTOD(“200
44、6/03/08”)T1=CTOT(“2005/03/08”+“”+TIME()?D1,T1&2006/03/082006/03/0810:12:25AM第53页,共69页,编辑于2022年,星期一6.6.日期或日期时间转换成字符串函数日期或日期时间转换成字符串函数格式:格式:DTOC(),1)TTOC(),1)说说明明:(1)字字符符串串日日期期部部分分的的格格式式与与SETDATETO命命令令的的设设置置有有关关;时时间部分的格式与间部分的格式与SETHOURSTO12|24命令的设置有关。命令的设置有关。(2)如如果果有有,1选选项项,对对于于DTOC,按按照照YYYYMMDD的的格格式式
45、输输出出;对于对于TTOC,则按照,则按照YYYYMMDDHHMMSS的格式输出,采用的格式输出,采用24小时制。小时制。第54页,共69页,编辑于2022年,星期一格式:格式:TYPE()VARTYPE()说明:说明:函数返回值为字符型,各字符含义如下:函数返回值为字符型,各字符含义如下:数据类型测试函数数据类型测试函数返回的字母返回的字母数据数据类类型型返回的字母返回的字母数据数据类类型型C字符型或字符型或备备注型注型G通用型通用型N数数值值型、整型、浮点型或双精型、整型、浮点型或双精度型度型D日期型日期型Y货币货币型型T日期日期时间时间型型L逻辑逻辑型型XNull值值O对对象型象型U未定
46、未定义义示例:示例:A=567?TYPE(“A”)&N?VARTYPE(A)&N第55页,共69页,编辑于2022年,星期一值域测试函数值域测试函数格式格式:BETWEEN(,,)功功能能:判判断断一一个个表表达达式式的的值值是是否否介介于于另另外外两两个个表表达达式式的的值值之之间间。当当值值大大于于等等于于且且小小于于等等于于时时,函函数数值值为为逻逻辑辑真真.T.,否否则则函函数数值值为为逻逻辑辑假假.F.。如如果果或或有有一一个是个是NULL值,那么函数值也是值,那么函数值也是NULL值。值。例例:x=76?BETWEEN(x,70,80)&结果为结果为.T.第56页,共69页,编辑于
47、2022年,星期一表达式测试函数表达式测试函数格式格式:INLIST(,)功功能能:测测试试表表达达式式1的的值值是是否否与与后后面面表表达达式式的的值值相相匹匹配配。若若表表达达式式1的的值值是是其其余余表表达达式式值值之之一一,函函数数值值为为逻逻辑辑真真“.T.”,否否则则函函数数值值为为逻辑假逻辑假“.F.”。第57页,共69页,编辑于2022年,星期一3.43.4VFPVFP的命令结构与书写规则的命令结构与书写规则第58页,共69页,编辑于2022年,星期一命令动词命令动词+修饰子句修饰子句命令结构命令结构示示例例:USEXS&打开名为打开名为XS的表文件的表文件COUNTALLFO
48、R成绩成绩60&统计统计XS中分数在中分数在60分以下的人数分以下的人数LISTALL姓名姓名,成绩成绩FOR成绩成绩60TOPRINTER&在打印机上输出成绩为在打印机上输出成绩为60分以下的学生的姓名和分数分以下的学生的姓名和分数USE&关闭表文件关闭表文件XS,将其保存在磁盘上,将其保存在磁盘上第59页,共69页,编辑于2022年,星期一VisualFoxPro命令的一般格式命令的一般格式;FOR;WHILE;TO FILE TO PRINTER TO;ARRAY TO;ALL LIKE EXCEPT;IN 第60页,共69页,编辑于2022年,星期一各部分的意义各部分的意义命令动词:命
49、令动词:VFP的命令名,指示计算机要完成的操作的命令名,指示计算机要完成的操作。表达式表:表达式表:规定命令可处理的字段。规定命令可处理的字段。范围:范围:指定命令所作用的记录范围。范围有下列五种选择:指定命令所作用的记录范围。范围有下列五种选择:ALL当前表中的全部记录。当前表中的全部记录。NEXT 从当前记录开始的连续从当前记录开始的连续N条记录。条记录。RECORD当前表中的第当前表中的第N号记录。号记录。REST 从当前记录开始到最后一条记录为止的所有记录。从当前记录开始到最后一条记录为止的所有记录。缺省:缺省:在不同的命令中含义不同,等价于在不同的命令中含义不同,等价于ALL或仅作用
50、或仅作用于当前记录。于当前记录。第61页,共69页,编辑于2022年,星期一123456NEXT 3RESTALL当前记录指针当前记录指针RECORD 3 范围示例:范围示例:第62页,共69页,编辑于2022年,星期一各部分的意义各部分的意义FOR:规定只对满足条件的记录进行操作规定只对满足条件的记录进行操作。WHILE:从当前记录开始,按记录顺序从上向下从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结束处理,一旦遇到不满足条件的记录,就停止搜索并结束该命令的执行。该命令的执行。(WHILE 子句比子句比FOR子句优先子句优先)TO子句:子句:控制操作结果的输