VFP的基本语法.ppt
第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法第第3 3章章Visual FoxProVisual FoxPro的基本语法的基本语法 第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法教学目标教学目标掌握掌握VFPVFP中数据类型及变量的分类中数据类型及变量的分类;掌握变量的命名及表达式运算;掌握变量的命名及表达式运算;掌握掌握内存变量的操作;内存变量的操作;熟悉熟悉VFP函数的使用。函数的使用。重点与难点:数据及变量的类型;使用逻辑表达式描数据及变量的类型;使用逻辑表达式描述复合条件;类型转换函数及状态测试函数。述复合条件;类型转换函数及状态测试函数。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法3.1常量与变量常量与变量第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法一一.常量常量表示一个具体的、不变的值。不同类型的常量有不同的书写格式。表示一个具体的、不变的值。不同类型的常量有不同的书写格式。1.字字符符型型常常量量用用定定界界符符(单单引引号号、双双引引号号和和方方括括号号)括括起起来来的的字字符符串串。可可以以是是26个个英英文文大大小小写写字字母母、10个个阿阿拉拉伯伯数数字字、各各种种汉汉字字、专专用用符符号号和和空空格格等等,最最大大长长度度可可达达254个字符。个字符。示示例例:“ade”,568,“book的的中中文文意意思思是是书书。”注注意意:如如果果将将阿阿拉拉伯伯数数字字定定义义为为字字符符串串时时,它它不不具具备备数数学学上的数值含义,不能参加数学运算,如电话号码,邮编等。上的数值含义,不能参加数学运算,如电话号码,邮编等。注注意意:字字符符定定界界符符必必须须成成对对的的出出现现。如如果果字字符符串串中中包包含含一一种种定定界界符符,则则必必须须用用另另一一种种定定界界符符括括起起来来。如如:“计计算算机机”,双引号为字符定界符,其中的方括号为字符串。,双引号为字符定界符,其中的方括号为字符串。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法例如:在主窗口中显示几个字符常量例如:在主窗口中显示几个字符常量?“计算机计算机”,123123,数据数据,ABX ABX“abc”“abc”?“?“学习学习”,”,字符串字符串,“”,“”,表示方法表示方法 注意注意,不包括任何字符的字符串不包括任何字符的字符串(“”)(“”)叫空串叫空串.空串与包含空格的字符串空串与包含空格的字符串(“”)(“”)不同不同.第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法2.数数值值型型常常量量用用来来表表示示一一个个数数量量的的大大小小,可可以以进进行行算算术术运运算算。包包含含09的的阿阿拉拉伯伯数数字字、小小数数点点与与正正负负号号,最最大大长长度度为为20位。位。示例:示例:538,10.5,5.87E12,1.6E123.逻辑型常量逻辑型常量只有逻辑真和逻辑假两个值,只有逻辑真和逻辑假两个值,逻辑真的表示形式有:逻辑真的表示形式有:.T.、.t.、.Y.和和.y.逻辑假的表示形式有:逻辑假的表示形式有:.F.、.f.、.N.和和.n.逻辑型数据长度固定为逻辑型数据长度固定为1位,占用位,占用1个字节。个字节。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法4.日期型常量日期型常量表示一个确切的日期,用表示一个确切的日期,用大括号大括号作为定界符。作为定界符。1)传统的日期格式:传统的日期格式:mm/dd/yy,受设置命令的影响。,受设置命令的影响。2)严严格格的的日日期期格格式式:YYYY-MM-DD,不不受受设设置置命命令令的的影影响,能表达一个确切的日期。响,能表达一个确切的日期。示例示例:10/08/06,2006-08-06严严格格的的日日期期格格式式可可以以在在任任何何情情况况下下使使用用,而而传传统统的的日日期期格格式只能在式只能在SETSTRICTDATETO0 状态下使用。状态下使用。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法3)3)影响日期格式的设置命令影响日期格式的设置命令SETMARKTO日期分隔符日期分隔符SETDATETOymdmdy等等SETCENTURYON|OFF&设置年份位数设置年份位数SETSTRICTDATETO0|1&是否进行严格的日期格式检查是否进行严格的日期格式检查0:检查检查严格日期格式严格日期格式1:不检查不检查传统日期格式传统日期格式2:检查,并且对检查,并且对CTOD()和和CTOT()也有效也有效第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法5.5.日日期期时时间间型型常常量量包包括括日日期期和和时时间间两两部部分分内内容容,用来描述日期和时间。用来描述日期和时间。示例示例:05/16/9912:00:006.货货币币型型常常量量用用来来表表示示货货币币值值,在在数数字字前前加加一一个个符符号号($)。存存储储和和计计算算时时采采用用4位位小小数数,多多余余小小数数位位四四舍五入。舍五入。示例:示例:$123.4567第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法二二.变量变量在在使使用用过过程程中中其其值值可可以以改改变变的的量量。VFP的的变变量量分分为为字字段段变变量量和和内内存存变变量量两两大大类类。内内存存变变量量又又包包括括简简单单内内存存变变量量、系系统统内内存变量和数组变量。存变量和数组变量。1.字段变量字段变量 字字段段变变量量对对应应于于数数据据表表中中的的字字段段,是是在在建建立立数数据据表表文文件件时时定定义义的的,数数据据表表中中的的每每一一个个字字段段都都是是一一个个字字段段变变量量,以以字字段段名名标标识识。字字段段变变量量必必须须依依附附于于数数据据表表,存存在在于于数数据据表表文文件件中中,随随着数据表的打开而生效,随着数据表的关闭而撤消,着数据表的打开而生效,随着数据表的关闭而撤消,2.简单内存变量简单内存变量内内存存中中的的一一个个存存储储区区域域,是是一一种种临临时时工工作作单单元元,常常被被用用来来存存储储所所需需要要的的常常数数、中中间间结结果果或或最最终终结结果果。变变量量名名由由汉汉字字、字母、数字和下划线组成字母、数字和下划线组成,必须由字母或汉字开头必须由字母或汉字开头。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法(1)内存变量的命名规则:)内存变量的命名规则:由字母、汉字、数字或下划线组成。由字母、汉字、数字或下划线组成。以字母、汉字或下划线开头。以字母、汉字或下划线开头。长度为长度为1128个字符,每个汉字占两个字符。个字符,每个汉字占两个字符。不能使用不能使用VFP的保留字。的保留字。当当内存变量名与字段变量名相同内存变量名与字段变量名相同时,字段名优先于内存变量名,时,字段名优先于内存变量名,使用时可以在内存变量名前加上使用时可以在内存变量名前加上M.(或(或M)以示区别,但赋)以示区别,但赋值时不能使用前缀。值时不能使用前缀。例:例:?M.姓名姓名&表示内存变量表示内存变量第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法内存变量的赋值命令内存变量的赋值命令STORETO 格式一格式一命令动词命令动词去向子句去向子句包含值的表达式包含值的表达式接收值的变量名表接收值的变量名表STORE0TOAA,BB,CC&数值数值0赋给变量赋给变量AA,BB,CCSTORE“李磊李磊”TONAME&字符串字符串“李磊李磊”赋给赋给NAME例例格式二格式二=接收值的变量名接收值的变量名赋值操作符赋值操作符包含值的表达式包含值的表达式例例A=.T.将逻辑真值赋给变量将逻辑真值赋给变量A第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法功能注释功能注释:(1 1)等号等号一次只能给一个内存变量赋值。一次只能给一个内存变量赋值。(2 2)StoreStore命令命令可以同时给若干个变量赋予相同的可以同时给若干个变量赋予相同的值,各内存变量名之间必须用逗号分开。值,各内存变量名之间必须用逗号分开。(3 3)在)在vfpvfp中,变量使用之前并不需要特别的声明中,变量使用之前并不需要特别的声明和定义。和定义。(4 4)内存变量在赋值时定义了它的值及类型,其类)内存变量在赋值时定义了它的值及类型,其类型与所赋值的类型相同。型与所赋值的类型相同。(5 5)命令后的符号命令后的符号&,表示该符号后跟随的是本命,表示该符号后跟随的是本命令行的注释,与命令执行无关。令行的注释,与命令执行无关。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法3.3.3.3.内存变量的显示内存变量的显示内存变量的显示内存变量的显示;命令格式一命令格式一命令格式一命令格式一 LISTMEMOTOPRINTLISTMEMOTOPRINTDISPLAYMEMOTOPRINTDISPLAYMEMOTOPRINT 例例例例listmemolistmemo 命令格式一命令格式一命令格式一命令格式一?/?/?功能计算表达式的值,并将其显示在屏幕上。功能计算表达式的值,并将其显示在屏幕上。?表示从屏幕下一行的第一列显示结果?表示从屏幕下一行的第一列显示结果?表示从当前行的当前列显示结果?表示从当前行的当前列显示结果例如:例如:S=“visiual”P=“foxpro”?s?p第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法例如例如 在命令窗口键入的命令和主屏显示的内容如下:在命令窗口键入的命令和主屏显示的内容如下:s=“vfp”&s=“vfp”&用字符串用字符串vfpvfp赋给变量赋给变量S S,结果,结果S S的值为的值为vfp,vfp,并成为字符型变量并成为字符型变量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 第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法2.数组数组 数组数组 是按一定顺序排列的一组内存变量,数组中的是按一定顺序排列的一组内存变量,数组中的各个变量称为数组元素。每个数组元素可通过数组各个变量称为数组元素。每个数组元素可通过数组名及相应的下标来访问。名及相应的下标来访问。数组必须先定义后使用。数组必须先定义后使用。说明:说明:由若干单下标变量组成的数组称为一维数组,由若干单下标变量组成的数组称为一维数组,由若干双下标变量组成的数组称为二维数组。由若干双下标变量组成的数组称为二维数组。在在VisualFoxPro 中,只允许使用一维数组或二维数组。中,只允许使用一维数组或二维数组。一维数组:一维数组:各个元素按线性排列;各个元素按线性排列;二维数组:二维数组:类似于一个数据表,第一维是行,第二维类似于一个数据表,第一维是行,第二维是列是列。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法定义数组定义数组在使用数组时一定要先定义在使用数组时一定要先定义,有两条命令可以定义数组。,有两条命令可以定义数组。格式一格式一格式二格式二DIMENSION(,),(,)DECLARE(,),(,)功能:功能:定义一个或多个一维或二维的内存变量数组。定义一个或多个一维或二维的内存变量数组。参数描述:参数描述:DIMENSION和和DECLARE为定义数组的命令动词。为定义数组的命令动词。:指定数组的名称,其规定与内存变量名相同。:指定数组的名称,其规定与内存变量名相同。(,):定义数组的维数和大小):定义数组的维数和大小。说明:说明:1、数组的下标的起始值为数组的下标的起始值为。2、同一数组中的数组元素可以有不同的数据类型、同一数组中的数组元素可以有不同的数据类型。3、二维数组中各元素按行的顺序依次排列、二维数组中各元素按行的顺序依次排列。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法4、每个数组占用一个内存变量、每个数组占用一个内存变量。5、除了可以分别对数组元素赋值以外,也可对数组中的所有元素、除了可以分别对数组元素赋值以外,也可对数组中的所有元素赋同一初值赋同一初值。6、DIMENSION和和DECLARE功能完全相同,常用功能完全相同,常用DIMENSION。例如:例如:DIMENSION(,),(,)DIMENSIONA(2,3),B(4,8)也可以一次只定义一个数组:也可以一次只定义一个数组:DIMENSIONA(2,3)也可以只定义一维数组:也可以只定义一维数组:DIMENSIONA(6)第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法(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)第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法数组元素的赋值操作数组元素的赋值操作STORETO格式一格式一命令动词命令动词去向子句去向子句包含值的表达式包含值的表达式接收值的数组名或元素接收值的数组名或元素STORE0TOA将数值将数值0赋给数组赋给数组A的所有元素的所有元素STORE李磊李磊TOA(2,1)将字符串将字符串“李磊李磊”赋给数组赋给数组A的第的第2行第行第1列的元素。列的元素。例例格式二格式二=接收值的数组名或元素接收值的数组名或元素赋值操作符赋值操作符包含值的表达式包含值的表达式例例A=.T.将逻辑真值赋给数组将逻辑真值赋给数组A的所有元素的所有元素第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法【例【例2.32.3】定义数组,并给数组赋值。】定义数组,并给数组赋值。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)第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法3.2运算符与表达式运算符与表达式第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法运算符运算符:是对数据对象是对数据对象(操作数操作数)进行操作运算的符号。进行操作运算的符号。运算符以其结果的运算符以其结果的类型类型分组有如下五类分组有如下五类:算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符字符串运算符字符串运算符日期运算符日期运算符1、算术运算符、算术运算符:操作数和运算的结果都是数值操作数和运算的结果都是数值(1 1)+加号加号 (2 2)-减号减号 (3 3)*乘号乘号 (4 4)/除号除号 (5 5)或或*乘方乘方 (6 6)%余数余数%取模取模,取两数相除的余数,取两数相除的余数?17%5结果为结果为2和和*乘方乘方?23结果为结果为8运算的顺序:是先乘方运算的顺序:是先乘方-乘除乘除-加减,若有括号先内加减,若有括号先内后外。后外。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法4.4.关系运算符:关系运算符:小于小于()、等于、等于(=)、不等于、不等于(、#或或!=!=)、小于等于小于等于(=)、字符串包含字符串包含($)、字符串精确比较、字符串精确比较(=)。说明:说明:(1)运运算算符符=和和$仅仅适适用用于于字字符符型型数数据据。其其他他运运算算符符适适用用于于任任何何类类型型的的数数据据,但但前前后后两两个个运运算算对对象象的的数数据据类类型型必必须须一一致致。数数值值型型和和货货币币型型数数据据比比较较:按按数数值值的的大大小小比比较较,包包括括负负号。号。日期或日期时间型数据比较日期或日期时间型数据比较:越早的日期或时间越小,越晚的日期或时间越大。越早的日期或时间越小,越晚的日期或时间越大。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法注意:关系运算符两边操作数类型必须一致,比较的结注意:关系运算符两边操作数类型必须一致,比较的结果是逻辑植。果是逻辑植。数值数据按数值大小比较数值数据按数值大小比较?56(f)?56(f)日期型数据按年月日的先后进行比较日期型数据按年月日的先后进行比较?12/31/9912/31/01(f)?12/31/9912/31/01(f)字符型数据是按相应位置上两个字符的字符型数据是按相应位置上两个字符的ASCIIASCII码值进码值进行比较行比较 “ABC”AAAA”(T),“ABC”=“AB”(T)“ABC”AAAA”(T),“ABC”=“AB”(T)“ABC “ABC”=“”=“AB”(F),AB”(F),:包含,左串是右串的子串为真包含,左串是右串的子串为真?BC$ABCD(T)?BC$ABCD(T)第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法3、逻辑运算逻辑运算,运算结果是逻辑值运算结果是逻辑值 NOT(!):取反运算,(!):取反运算,即:即:NOT.T.=.F.NOT.F.=.T.AND.逻辑与逻辑与.T.AND”ABC”AB”(T).OR.逻辑或逻辑或.T.OR34(T)4 4、字符运算符、字符运算符:用于连接两个字符串:用于连接两个字符串:用于连接两个字符串,并将前面一个字符串:用于连接两个字符串,并将前面一个字符串 尾部的空格移到结果字符串的尾部。尾部的空格移到结果字符串的尾部。例如:例如:a=hellob=everyone!?a+b,a-b第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法例:例:使用逻辑表达式描述使用逻辑表达式描述复合条件复合条件条件一条件一:“自动化专业的女团员自动化专业的女团员”专业专业“自动化自动化”AND性别性别=女女AND团员团员条件二条件二:“未婚的女职工未婚的女职工”NOT婚否婚否AND性别性别=女女条件三:条件三:“职称为工程师或部门为技术科的男职工职称为工程师或部门为技术科的男职工”(职称职称=“工程师工程师”OR部门部门=“技术科技术科”)AND性别性别=男男第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法例如:例如:“ABCl23”+“666xyz”连接后结果为:连接后结果为:ABCl23666xyz“计算机计算机”+“世界世界”连接后结果为:连接后结果为:“计算机世界计算机世界”“ABC”-“DEFG”连接后结果为:连接后结果为:ABCDEFG“ABC”“DEFG”连接后结果为:连接后结果为:ABCDEFG第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法“+”运算符与运算符与“”运算符的区别运算符的区别:A BeBFA BeBFA BeBF+A BeBF第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法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传统日期的格式传统日期的格式Setcenturyon/off年份前含有世纪年份前含有世纪/不含世纪不含世纪第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法算术运算符算术运算符最最高高级级*或或(乘方)(乘方)*、/、和、和%(乘、除和余数)(乘、除和余数)和和(加和减)(加和减)和和(直接连接(直接连接和去空连接)和去空连接)和(加和减)和(加和减)日期运算符日期运算符 关系运算符关系运算符、=、=、#、!=、$、=各运算符优先级相同各运算符优先级相同次次高高级级逻辑运算符逻辑运算符NOT或!(逻辑非)或!(逻辑非)AND(逻辑与)(逻辑与)OR(逻辑或)(逻辑或)最最低低级级字符串运算符字符串运算符第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法 例如:数值表达式例如:数值表达式?(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第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法3.3VisualFoxPro的常用函数的常用函数第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法函函数数名名起起标标识识作作用用;参参数数是是自自变变量量,写写在在括括号号内内,当当有有多多个个参参数数时时,各各个个参参数数之之间间用用逗逗号号分分隔隔;括括号号中中没没有有参参数数的的函函数数称称为为无参函数。无参函数。每个函数运算后都会返回一个值,称为函数值,无参函数也每个函数运算后都会返回一个值,称为函数值,无参函数也不例外,函数值会因参数值而异。不例外,函数值会因参数值而异。函数的三个要素函数的三个要素:函数名函数名参数参数函数值函数值函数名(函数名(函数名(函数名(参数参数参数参数1 1,参数,参数,参数,参数2 2 )函数的一般格式:函数的一般格式:第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法1.1.宏替换函数宏替换函数格式格式:&.示例:示例:aa=“bb”bb=“北京北京”?aa,bb,&aa?“&bb.是是中中国国的的首首都都”&用用“.”.”作作为为内内存存变变量量的的结结束符束符n=“567.83”?356.08+&n注注意意:如如果果&后后不不跟跟有有效效的的内内存存变变量量名名,则则&只只是是一一个个字符字符一一.字符处理函数字符处理函数第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法2.2.计算字符串长度函数计算字符串长度函数LEN()LEN()格式格式:LEN()示例:示例:?LEN(“x+y=?”)&结果为结果为5?LEN(“VisualFoxPro程序设计程序设计)&结果为结果为213.3.生成空格函数生成空格函数SPACE()SPACE()格式:格式:SPACE()示例:示例:?“湖北湖北”+SPACE(3)+“武汉武汉”&湖北湖北武汉武汉第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法取左子串:取左子串:LEFT(,)取右子串:取右子串:RIGHT(,)取任意子串:取任意子串:SUBSTR(,)“12345.6789”“789”“1234”“5.6”?RIGHT(C,3)变量变量C?LEFT(C,4)?SUBSTR(C,5,3)4.4.截取子串函数截取子串函数第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法格式格式:AT(,)功能:功能:AT(,)返回返回 在在 中中第一次第一次出现的起始位置。出现的起始位置。AT(,)返回返回 在在中中第第n n次次出现的起始位置。出现的起始位置。“This is a example.”?AT(is,C)?AT(is,C ,2)36变量变量C5.5.求子串位置函数求子串位置函数 第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法7.7.重复字符串函数重复字符串函数REPLICATE()REPLICATE()格式:格式:REPLICATE(,)示例:示例:?REPLICATE(*,3)&*6.6.计算子串出现次数函数计算子串出现次数函数 OCCURS()OCCURS()格式:格式:OCCURS(,)示例:示例:?OCCURS(is,Thisisaexample)&结果为结果为3?OCCURS(as,Thisisaexample)&结果为结果为0第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法8 8字符串替换函数字符串替换函数STUFF()STUFF()格式:格式:STUFF(,,)示例:示例:?STUFF(computer,3,4,”abc”)&结果为结果为”coabcer”?STUFF(computer,3,1,”abc”)&结果为结果为”coabcputer”第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法9.9.字符替换函数字符替换函数 CHRTRAN()CHRTRAN()格式:格式:CHRTRAN(,)示例:示例:?CHRTRAN(ABACAD,”ACD”,”X12”)&结果为结果为”XBX1X2”?CHRTRAN(计算机计算机ABC,”计算机计算机”,”电脑电脑”)&结果为结果为”电脑电脑ABC”10.10.字符串匹配函数字符串匹配函数 LIKE()LIKE()格式:格式:LIKE(,)2)示例:示例:?LIKE(”AB*”,”ABCDEFG”)&结果为结果为.T.第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法11.11.删除前后空格函数删除前后空格函数格式格式:TRIM()LTRIM()ALLTRIM()示例:示例:SS=SPACE(1)+“TEST”+SPACE(3)?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)&TESTTESTTEST?LEN(SS),LEN(TRIM(SS)&85?LEN(LTRIM(SS),LEN(ALLTRIM(SS)&74第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法12.12.大小写字母转换函数大小写字母转换函数格式:格式:LOWER()UPPER()示例:示例:?LOWER(“AaBbCc”)&结果为结果为aabbcc?UPPER(VisualFoxPro)&结果为结果为VISUALFOXPRO第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法 1.1.绝对值和符号函数绝对值和符号函数 格式:格式:ABS()SIGN()示例:示例:?ABS(3.456)&结果为结果为3.456?ABS(-12*5)&结果为结果为60二二二二.数值处理函数数值处理函数数值处理函数数值处理函数 第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法2.求整数函数求整数函数3.平方根函数平方根函数4.自然指数函数自然指数函数5.对数函数对数函数6.圆周率函数圆周率函数7.四舍五入函数四舍五入函数8.求模求模(余数余数)函数函数9.正弦函数正弦函数10.余弦函数余弦函数11.求最大值和最小值函数求最大值和最小值函数示例:示例:第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法1.1.系统日期和时间函数系统日期和时间函数 格式:格式:DATE()TIME()DATETIME()示例:示例:?DATE(),TIME(),DATETIME()&07/05/0614:38:0607/05/0602:38:06PM三三三三.日期和时间函数日期和时间函数日期和时间函数日期和时间函数 第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法2.2.求年份、月份和天数函数求年份、月份和天数函数格式:格式:YEAR(|)MONTH(|)DAY(|)示例:示例:?YEAR(DATE()&2006?MONTH(DATE()&7?DAY(DATE()&5假设当前日期为假设当前日期为2006年年7月月5日日第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法CMONTH(|)功能功能:以英文形式输出日期型表达式或日期时间型表达式以英文形式输出日期型表达式或日期时间型表达式中的月份。中的月份。3.3.字符月份函数字符月份函数 DOW()&返回返回17的数值的数值CDOW()&返回英文形式的星期返回英文形式的星期注意:注意:一个星期的第一个星期的第1天为天为Sunday4 4.星期星期函数函数第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法1 1.求求ASCIIASCII函数:函数:格式格式:ASC(ASC()返回返回中的中的第一个第一个字符对应的字符对应的ASCIIASCII码值。码值。2 2.求字符函数:求字符函数:格式:格式:CHR(CHR()返回返回ASCIIASCII值为值为 的字符。的字符。字符(字符(C C)字符的字符的ACSIIACSII码(码(N N)ASCCHR四四四四.数据类型转换函数数据类型转换函数数据类型转换函数数据类型转换函数 第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法格式:格式:STR(STR(,小数位数小数位数)说明:说明:(1)为为转转换换后后的的字字符符串串位位数数,该该长长度度包包括括小小数数点点、负负号号。如如果果缺缺省省和和,其其输输出出结结果果将将取取固固定定长长度为度为10位,且只取其整数部分;位,且只取其整数部分;(2):若若的的设设定定值值大大于于实实际际数数值值的的小小数数位位,则则转转换换后后的的字字符符串串后后补补0,若若的的设设定定值值小小于于实实际际数数值值的的小小数数位位,则则对对小小数数四四舍舍五五入入;若若缺缺省省,则转换后为整数,则转换后为整数,原小数部分四舍五入;原小数部分四舍五入;3 3.数值型向字符型转换函数数值型向字符型转换函数第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法(3)如如果果值值大大于于给给出出值值的的数数字字位位数数时时,在在返返回的字符串左边添加空格;回的字符串左边添加空格;(4)如如果果值值小小于于值值的的整整数数部部分分位位数数,将将返返回回一串星号,表示数值溢出。一串星号,表示数值溢出。示例:示例:n=1234.56789?STR(n,8,2)&结果为结果为1234.57?STR(n,8)&结果为结果为1235?STR(n,8,4)&结果为结果为1234.568?STR(n,12,6)&结果为结果为1234.567890?STR(n)&结果为结果为1235?STR(n,3)&结果为结果为*第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法4.4.字符串转换成数值函数字符串转换成数值函数VAL()VAL()格式:格式:VAL()说明:说明:(1)的的值值必必须须是是数数字字形形式式的的字字符符串串,它它只只能能含有数字、正负号和小数点含有数字、正负号和小数点;(2)转转换换时时,如如果果遇遇到到非非数数字字字字符符则则停停止止。如如果果字字符符表表达达式的第一个字符即非数字字符,则转换停止,其值为式的第一个字符即非数字字符,则转换停止,其值为0.00;示例:示例:?VAL(“-789.123”)&结果为结果为-789.12-789.12?VAL(10A.56)&结果为结果为10.0010.00?VAL(C346.05)&结果为结果为0.000.00第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法格式:格式:CTOD()CTOT()说明:说明:(1)必须是一个有效的日期格式必须是一个有效的日期格式;(2)中中的的日日期期部部分分格格式式要要与与SETDATETO命命令令设置的格式一致。设置的格式一致。5.5.字符串转换成日期或日期时间函数字符串转换成日期或日期时间函数示例:示例:SETDATETOYMDSETCENTURYOND1=CTOD(“2006/03/08”)T1=CTOT(“2005/03/08”+“”+TIME()?D1,T1&2006/03/082006/03/0810:12:25AM第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法6.6.日期或日期时间转换成字符串函数日期或日期时间转换成字符串函数格式:格式:DTOC(),1)TTOC(),1)说说明明:(1)字字符符串串日日期期部部分分的的格格式式与与SETDATETO命命令令的的设设置置有有关关;时间部分的格式与时间部分的格式与SETHOURSTO12|24命令的设置有关。命令的设置有关。(2)如如果果有有,1选选项项,对对于于DTOC,按按照照YYYYMMDD的的格格式式输输出出;对对于于TTOC,则则按按照照YYYYMMDDHHMMSS的的格格式式输输出,采用出,采用24小时制。小时制。第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法格式:格式:TYPE()VARTYPE()说明:说明:函数返回值为字符型,各字符含义如下:函数返回值为字符型,各字符含义如下:数据类型测试函数数据类型测试函数返回的字母返回的字母数据数据类类型型返回的字母返回的字母数据数据类类型型C字符型或字符型或备备注型注型G通用型通用型N数数值值型、整型、浮点型或双精型、整型、浮点型或双精度型度型D日期型日期型Y货币货币型型T日期日期时间时间型型L逻辑逻辑型型XNull值值O对对象型象型U未定未定义义示例:示例:A=567?TYPE(“A”)&N?VARTYPE(A)&N第第3 3章章Visual FoxPro Visual FoxPro 的基本语法的基本语法值域测试函数值域测试函数格式格式:BETWEEN(,,)功功能能:判判断断一一个个表表达达式式的的值值是是否否介介于于另另外外两两个个表表达达式式