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