




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/19,第二章VisualFoxPro数据基础,1,本章内容简介VisualFoxPro作为一种基于关系模型的程序设计语言,具有完整的语法规则。本章主要介绍VisualFoxPro基本的语言元素,包括变量(内存变量和字段变量)、常量、函数及表达式和表达式的运算规则等。学习目标利用VisualFoxPro进行数据管理,除使用数据库外,还必须学会编写程序,要编写程序就要会写语句,要会写语句就要掌握组成语句的基本元素。学习切入点及方法本章是编写程序和写表达式的基础,涉及的内容多而琐碎。学习时,应充分利用交互工具“命令”窗口,通过看书与操作结合的方式学习,不必死记硬背。很多函数的功能、命令及表达式,可以通过在命令窗口操作来理解和加深记忆,从而灵活运用。计划用学时课堂讲授68学时,上机68学时。,2020/5/19,第二章VisualFoxPro数据基础,2,2.1常量、变量及其数据类型2.2常用函数2.3表达式与运算,2020/5/19,第二章VisualFoxPro数据基础,3,常量:是指程序运行过程中其值保持不变的量(一个具体的、不变的值。)1数值型常量(Numeric)数值型数据:由数字、小数点和正负号等组成,包括整数、小数、负数、浮点数、科学计数法表示的数等。数值型数据用来进行数学运算。如:140、0.33、-213、147.179、2E-8等。,2.1常量、变量及其数据类型,2.1.1常量,2020/5/19,第二章VisualFoxPro数据基础,4,2字符型常量(Character)字符型数据也称为字符串。通常用来表示文本类型的信息,它由中英文字符、汉字、数字、空格和各种专用符号组成。字符型常量:是指用双引号“”、单引号或方括号等定界符括起来的字符串。定界符必须配对使用。如:“kunming”、昆明市、1234。如果一种定界符已作为字符型常量的组成部分,应当选择另一种定界符来标识字符串。例如字符串:昆明又称为“春城”,2.1常量、变量及其数据类型,2.1.1常量,2020/5/19,第二章VisualFoxPro数据基础,5,3逻辑型数据(Logic)逻辑型数据:表示逻辑判断结果的值。逻辑型数据只有两个值:True(真)False(假)逻辑真可以表示为.T.、.t.、.Y.或.y.逻辑假可以表示为.F.、.f.、.N.或.n.(注意:前后两个点号是必需的。),在“命令”窗口输入?命令及表达式:?1534,477230&在主窗口中显示运算结果运算结果为:.F.T.,2.1常量、变量及其数据类型,2.1.1常量,2020/5/19,第二章VisualFoxPro数据基础,6,4日期型(Date)日期型数据:表示日期的特殊数据。日期型常量必须用花括号括起来。(1)严格日期格式格式为:yyyy-mm-dd如:2009-05-01或2009/05/01,表示2009年5月1日。这种格式的日期表明该日期是严格的,按照YMD的格式来解释日期和日期时间,不受系统设置的影响,可以在任何情况下使用。日期型数据表示范围是:0001-01-01至9999-12-31(2)传统的日期格式系统默认的日期型数据为美国日期格式:“mm/dd/yy”(月/日/年)月和日各为2位,而年可以是2位,也可以是4位,系统默认为2位。具体年代使用2位还是4位,由系统设置决定。,2.1常量、变量及其数据类型,2.1.1常量,2020/5/19,第二章VisualFoxPro数据基础,7,(3)影响日期格式的设置命令和选项在日期格式中,系统默认的分隔符为:斜杠(/)。SETMARKTO日期分隔符:可将分隔符设置成连字符(-)或点号(.)等。没有参数的SETMARKTO命令还原系统默认的分隔符。SETDATETO日期格式:可将日期格式设置成其他格式。如:SETDATETOmdy命令将日期格式设置为月/日/年(mm/dd/yy)。SETSTRICTDATETO0|1|2:设置是否对日期格式进行检查。在不进行严格日期检查时,日期型可以用传统日期格式“年/月/日”的形式来表示,定界符可以是花括号,年月日之间的分隔符可以是斜杠(/)、连字符(-)和空格。SETCENTURYON/OFF:设置年份使用4位或2位表示,默认为2位。,2.1常量、变量及其数据类型,2.1.1常量,2020/5/19,第二章VisualFoxPro数据基础,8,日期格式的设置也可以选择“工具”菜单中的“选项”命令来完成。,在“区域”选项卡中设置日期格式,2020/5/19,第二章VisualFoxPro数据基础,9,5.日期时间型(DateTime)日期型常量包括日期和时间两部分:,日期部分与日期型常量相似,也有严格和传统两种格式。时间部分的格式为:hh:mm:ssa|p。其中hh、mm和ss分别代表时、分和秒,默认值分别为12、0和0。AM(或A)和PM(或P)分别代表上午和下午,默认值为AM。如果指定的时间大于12,则自然为下午时间。6.货币型(Currency)货币型常量:用于表示货币值,是带货币单位的数据。其书写格式与数值型常量类似,但要在前面加上货币符号$。如:$123.45。在存储和计算时,采用4位小数,如果一个货币常量多于4位小数,那么系统将在小数点后4位进行四舍五入。,2.1常量、变量及其数据类型,2.1.1常量,2020/5/19,第二章VisualFoxPro数据基础,10,变量:在程序运行过程中,其值可以发生变化的量称为变量。VisualFoxPro中有两类变量:每个变量都有一个名字,可以通过变量名访问变量。给变量命名时,变量名必须遵守以下原则:1、必须以字母或汉字开头。2、变量名中只能含有字母(汉字)、数字和下划线。3、变量名不能是保留字,如对象名、系统预先定义的函数名等。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,11,2.1.2.1字段变量字段变量:表中定义好的任一数据列,通过字段名作为变量名来标识字段变量。,如果表中有20条记录,每一个字段名就有20个可取值。在数据库表中有一个记录指针,它指向的记录定义为当前记录,字段变量的现值就是当前记录中对应字段的值。记录指针可以移动,因此字段的取值随着指针的移动而改变,所以字段(或者字段名)是变量。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,12,字段变量的数据类型及其说明,2020/5/19,第二章VisualFoxPro数据基础,13,2.1.2.2内存变量内存变量:内存中的一块存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。对内存变量赋值可以改变其内容和类型。例如,当把一个数值常量赋值给一个变量时,这个常量就被存入到变量中,它将取代变量的原值而成为该变量新的取值。特点:是独立于数据库文件而存在的变量,用来存储数据处理过程中所需要的常数、中间结果和最终结果。还可以作为控制变量,用来控制应用程序的运行。内存变量6种类型:字符型(C)、数值型(N)、逻辑型(L)、日期型(D)、日期时间型(T)和货币型(Y)。内存变量由赋值语句定义,它的数据类型由赋值数据的类型决定。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,14,字段变量和内存变量的区别,如果在表中存在一个与内存变量同名的字段变量,则字段变量优先。如果要访问内存变量,则须在变量名前加上前缀M.或者M-,否则系统将访问同名的字段变量。,2020/5/19,第二章VisualFoxPro数据基础,15,2.1.2.2内存变量1、内存变量赋值命令给内存变量赋值命令有“=”、STORE等。使用“=”给变量赋值时,一次只能给一个变量赋值,而STORE命令可以同时给多个变量赋相同的值,各内存变量名之间用逗号分开。2、表达式值的显示命令?和?命令可以在VisualFoxPro的主窗口中显示表达式的值。?命令与?命令的作用相同,它们的区别是:?命令从光标当前行的下一行开始显示,即换行输出;?命令在当前光标位置开始显示,即同行输出,?命令紧接上一个显示位置输出表达式的值。当?命令后面没有任何表达式时,输出一个空行。?命令与?命令的各个输出项之间用逗号(,)分隔。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,16,3、内存变量显示命令格式:LISTMEMORYLIKETOPRINT|TOFILE或:DISPLAYMEMORYLIKETOPRINT|TOFILE4、内存变量的清除格式:CLEARMEMORY或:RELEASE或:RELEASEALLLIKE|EXCEPT,第一种格式清除所有内存变量,其余格式清除指定的内存变量。RELEASEALLLIKEX*表示只清除变量名以X开头的所有内存变量。RELEASEALLEXCEPTX*表示清除除了以X开头的变量以外的所有内存变量,(保留以X开头的所有内存变量)。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,17,2.1.2.3数组数组:是一批数据的有序集合,数组中的每一个数据称为一个数组元素。每一个数组元素相当于一个内存变量与数组相比,内存变量又称为简单变量。与简单内存变量不同,数组必须先定义后使用。1、数组的定义格式:DECLARE(,),(,)或:DIMENSION(,),(,)两种格式功能相同。定义时将规定数组是一维或二维数组,数组名和大小。大小由下标值的上、下限决定,下限规定为1。每个数组最多可以包含3600个元素。数组创建后,在赋值前,系统自动给每个数组元素赋值为逻辑假(.F.)。整个数组的数据类型为A(Array),使用时可以给各个元素分别赋值,一个数组中各元素的数据类型可以不同,数组元素可以是任意类型的数据,其数据类型由对该变量的赋值决定。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,18,2、数组的使用数组定义后,数组中每个元素就可以像内存变量一样使用。数组元素赋值与内存变量赋值一样,可用STORE命令赋初值。格式:STORETO=功能:给数组中每个数组元素赋以相同的值。,在使用数组时应注意:(1)在同一运行环境,数组名不能与简单变量名相同。(2)可以用一维数组的形式访问二维数组。例如,dimensiony(2,3)定义的数组中的元素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)。其中y(4)与y(2,1)是同一变量。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,19,2.1.2.4用字段变量给数组赋值格式:SCATTERFIELDSTO功能:将当前表文件的当前记录各字段值赋给数组各元素。如果无FIELDS选项,则按记录中字段的先后顺序传送所有字段(备注字段和通用字段除外),否则按指定字段顺序传送。字段的类型决定了数组变量的类型。如果数组元素个数多于传送字段数,则剩余的数组元素值不变,否则系统将自动增加数组元素个数。例如:打开“基本信息”表文件,当前记录为第一条记录,将它复制到数组RS中。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,20,2.1.2.5用数组数据替换当前记录的字段值格式:GATHERFROMFIELDS功能:用数组元素的值顺序替换当前表文件的当前记录各字段的值。若无FIELDS选项,则按数组元素的顺序从左到右地填入当前记录的每一个字段中(备注字段和通用字段除外),否则按指定字段填入。若数组元素个数少于字段数,则当前记录中其余的字段值不受影响;反之剩余的数组元素不替换。例如,打开表文件,定义数组,用数组中的值填入表中。,2.1常量、变量及其数据类型,2.1.2字段变量和内存变量,2020/5/19,第二章VisualFoxPro数据基础,21,函数:是用来实现一种数据运算或转换的一段程序。每个函数都有特定的运算功能或转换功能。函数按功能分为:数值运算函数、字符处理函数、日期函数、数据类型转换函数、测试函数等。与数学函数一样,自变量称为参数,对于合法的参数,函数必有一个运算结果,称为函数值或返回值。函数的一般形式是:(参数表)在使用函数时应注意以下几个问题:(1)所有函数名必须跟随有圆括号,无论函数是否需要参数(宏代换函数&除外)。(2)每个函数必然有一个返回值,返回值有确定的数据类型。函数可作为表达式的组成部分,在组成表达式时,需特别注意类型的匹配。(3)传送给函数的参数也有一定的数据类型,必须按要求的数据类型传送参数值。,2.2常用函数,2020/5/19,第二章VisualFoxPro数据基础,22,数值函数:通常是指函数的返回值为数值的一类函数。1.取绝对值函数ABS()格式:ABS()功能:求出的绝对值。例:?ABS(-56),ABS(70-80)56102.符号函数SIGN()格式:SIGN()功能:返回数值表达式的符号,当数值表达式的运算结果为正、负和零时,函数值分别为1、-1和0。例:STORE77TOX?SIGN(60-X),SIGN(90-X)-11,2.2常用函数,2.2.1数值函数,2020/5/19,第二章VisualFoxPro数据基础,23,3.取整函数INT()格式:INT()功能:返回值的整数部分。例:?INT(40.5),INT(-40.5)40-404.最大值函数MAX()格式:MAX(,)功能:求两个的最大值。两个中的较近日期。例:?MAX(778.8,190.5),MAX(-35,-67)778.8-35.005.最小值函数MIN()格式:MIN(,)功能:求两个中最小值。两个中的较远日期。,2.2常用函数,2.2.1数值函数,2020/5/19,第二章VisualFoxPro数据基础,24,6.求平方根函数SQRT()格式:SQRT()功能:返回指定表达式的平方根。自变量表达式的值不能为负。例:?SQRT(67),SQRT(9),SQRT(7-5)8.193.001.417.四舍五入函数ROUND()格式:ROUND(,)功能:返回指定表达式在指定位置四舍五入后的结果。指明四舍五入的位置。若大于或等于0,表示要保留的小数位数;若小于0,表示的是对整数部分进行四舍五入。例:?ROUND(56.785,2),ROUND(1.455,0),ROUND(56,-1),ROUND(-3.141,2)56.79160-3.14,2.2常用函数,2.2.1数值函数,2020/5/19,第二章VisualFoxPro数据基础,25,8.求余数函数MOD()格式:MOD(,)功能:返回两个数值相除后的余数值。是被除数,是除数。如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。例:?MOD(10,3),MOD(-10,3),MOD(10,-3),MOD(-10,-3)12-2-1?MOD(15,4),MOD(-15,-4),MOD(-15,4),MOD(15,-4)3-31-1,2.2常用函数,2.2.1数值函数,2020/5/19,第二章VisualFoxPro数据基础,26,字符函数:通常是指自变量即参数是字符型的函数。1.求子串函数SUBSTR()格式:SUBSTR(,)功能:在的字符串中,从开始取出所指定的字符。若省略第三个自变量,则从指定位置一直取到最后一个字符。例:?SUBSTR(yunnanuniversity,8,10)university?SUBSTR(我们是学生,7)学生2.从左端取子串函数LEFT()格式:LEFT(,)功能:从指定表达式的左端取出由给出的指定长度的子串。例:?LEFT(至公天下,4)至公,2.2常用函数,2.2.2字符函数,2020/5/19,第二章VisualFoxPro数据基础,27,3从右端取子串函数RIGHT()格式:RIGHT(,)功能:从指定表达式的右端取出由给出的指定长度的子串。例:?RIGHT(会泽百家,4)百家4小写转大写函数UPPER()和大写转小写函数LOWER()格式:UPPER()LOWER()功能:UPPER()函数将字符表达式中所有小写字母转换成大写字母。LOWER()函数将字符表达式中所有大写字母转换成小写字母。例:?UPPER(computer)COMPUTER?LOWER(OPERATIONSYSTEM)operationsystem,2.2常用函数,2.2.2字符函数,2020/5/19,第二章VisualFoxPro数据基础,28,5.求字符串长度函数LEN()格式:LEN()功能:返回指定字符表达式值的长度,即所包含的字符个数。函数值为数值型。例:?LEN(Unix操作系统)136删除字符串前后空格的函数格式:TRIM()LTRIM()ALLTRIM()功能:TRIM()返回指定字符表达式去掉尾部空格后得到的字符串。LTRIM()返回指定字符表达式去掉前面空格后得到的字符串。ALLTRIM()返回指定字符表达式去掉前面和尾部空格后得到的字符串。例:?TRIM(VisualFoxPro)VisualFoxPro,2.2常用函数,2.2.2字符函数,2020/5/19,第二章VisualFoxPro数据基础,29,7求子串出现位置函数AT()格式:AT(,)功能:如果是的子串,则返回的首字符在中的位置,若不是子串,则返回0。函数的返回值为数值型。另有一个ATC()函数,与AT()功能类似,但在子串比较时不区分大小写。表明在中搜索第几次出现,默认值为1。例:?AT(Fox,VisualFoxPro),AT(Fox,VisualFoxPro,1),AT(Fox,VisualFoxPro,2)880,2.2常用函数,2.2.2字符函数,2020/5/19,第二章VisualFoxPro数据基础,30,8.字符串匹配函数LIKE格式:LIKE(,)功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)。中可以包含通配符*和?。*可以与任何数目的字符相匹配,?可以与任何单个字符匹配。例:x=wearey=happy?LIKE(we*,x),LIKE(w?,x),LIKE(y,x),LIKE(h*,y).T.F.F.T.,2.2常用函数,2.2.2字符函数,2020/5/19,第二章VisualFoxPro数据基础,31,日期和时间函数:是指自变量通常是日期型或日期时间型数据。1.时间函数TIME()格式:TIME()功能:以“时:分:秒”(hh:mm:ss)格式返回当前系统时间,函数值为字符型。例:如果当时的系统时间是上午11时25分17秒,则有:?TIME()11:23:17如果提供任意数值作为自变量,则返回的时间精度为百分之一秒。?TIME(4)11:23:17.33,2.2常用函数,2.2.3日期和时间函数,2020/5/19,第二章VisualFoxPro数据基础,32,2.日期函数DATE()格式:DATE()功能:返回当前系统日期,返回值为日期型。如果不通过SETDATE命令特别设置,系统日期的格式为:月/日/年(MM/DD/YY)。例:如果今天的系统日期是2004年2月11日,则有:?DATE()02/11/043.日期时间函数DATETIME()格式:DATETIME()功能:返回当前系统日期时间,返回值为日期时间型。例:如果今天的系统日期是2004年2月11日,上午11时25分17秒,则有:?DATETIME()02/11/0411:25:17AM,2.2常用函数,2.2.3日期和时间函数,2020/5/19,第二章VisualFoxPro数据基础,33,取年份、月份和日期函数YEAR()、MONTH()和DAY()格式:YEAR(|)MONTH(|)DAY(|)功能:YEAR()从指定的日期表达式或日期时间表达式中返回年份。MONTH()从指定的日期表达式或日期时间表达式中返回月份。DAY()从指定的日期表达式或日期时间表达式中返回月份的日期。例:STORE2009-12-25TOD?YEAR(D),MONTH(D),DAY(D)20091225如果当前系统日期是2009年1月1日,则:?YEAR(DATE(),MONTH(DATE(),DAY(DATE()200911,返回值均为数值型。,2.2常用函数,2.2.3日期和时间函数,2020/5/19,第二章VisualFoxPro数据基础,34,1.字符型转换成日期型函数CTOD()格式:CTOD()功能:将中的日期格式的字符串转换为日期型数据。例:?CTOD(01/11/09)&将字符串01/11/09转换成日期并显示。01/11/092.日期型转换成字符型函数DTOC()格式:DTOC(,)功能:将中的日期型值转为字符型。若无选项时,则字符串的格式为:月/日/年;若指定选项为时,则字符串的格式为:yyyymmdd。其中的1可以是任意数值。例:假若今天是2010年2月11日,?今天的日期是:+DTOC(DATE()今天的日期是:02/11/10?今天的日期是:+DTOC(DATE(),1)今天的日期是:20100211,2.2常用函数,2.2.4数据类型转换函数,2020/5/19,第二章VisualFoxPro数据基础,35,3.数值型转换成字符型函数STR()格式:STR(,)功能:将的值转为字符型数据。返回字符串长度理想值L=的整数部分+1(小数点)。值决定转换后的字符串长度,包括小数点、负号。值决定转换后小数点右边小数位数。若值大于L,则字符加前导空格以满足规定的要求;若值小于L但大于等于值的整数位数,则优先满足整数部分而自动调整小数位数;若值小于值的整数位数,则返回一串“*”。例:?STR(123.45,6,2),STR(3.141592,4,4),STR(76543.212,3,2)123.453.14*,2.2常用函数,2.2.4数据类型转换函数,2020/5/19,第二章VisualFoxPro数据基础,36,4.字符型转换成数值型函数VAL()格式:VAL()功能:将由数字符号(包括数字、正负号、小数点)组成的字符串转为数值型数据。中必须是有效的数值表达式(可以是数值的科学计数法表示,例如:1.44E2)。若字符串内出现非数字字符,如果首字符不是数字符号,则返回数值零,否则转换前面部分。例:?VAL(123.45),VAL(123.87hello123),VAL(happy99.78)123.45123.870.005.宏代换函数&格式:&功能:&函数用于替换出字符型内存变量的内容,即&的值是变量中的字符串。,2.2常用函数,2.2.4数据类型转换函数,2020/5/19,第二章VisualFoxPro数据基础,37,5.宏代换函数&如果该函数与其后的字符无明确分界,则需用“.”号作为函数结束标识。可以嵌套。例1:STORE学生TOXSUSE&XS&相当于打开学生表命令:USE学生XNAME=“姓名”&将“姓名”字符串赋值给变量XNAME?XNAME,&XNAME姓名杨波例2:STOREDISPLAYTOLUSE学生&L&相当于执行了DISPLAY命令记录号学号姓名性别出生日期专业入学成绩贷款否照片简历120030102001杨波女06/06/1978新闻666.6.T.GenMemo例3:STORE*TOsymSTOREX&sym.YTOZ&宏替换命令后的变量与其他字符用.分隔。?Z将显示X*Y,2.2常用函数,2.2.4数据类型转换函数,2020/5/19,第二章VisualFoxPro数据基础,38,在处理数据时,有时需要了解操作对象的状态,如:数据的类型、表文件的记录指针的位置、记录指针是否到了文件头或文件尾等。特别在程序运行时,常需要根据测试结果决定程序走向或处理方式。1.表文件尾测试函数EOF()格式:EOF()功能:测试指定工作区表文件中的记录指针是否指向文件尾,若记录指针已经指向最后一条记录的后面位置,EOF()函数逻辑值为真.T.,否则为假.F.。若省略时,测试当前工作区的表文件。若工作区未打开表文件,则值为假.F.。若表文件中没有记录,返回真.T.。例:USE学生GOTOBOTTOM?EOF().F.SKIP?EOF().T.,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,39,2.表文件起始测试函数BOF()格式:BOF()功能:测试指定工作区表文件记录指针是否指向文件首。若记录指针指向表文件首(第一条记录的前面),BOF()函数逻辑值为逻辑真(.T.),否则为逻辑假(.F.)。若省略时,测试当前工作区的表文件。若测试的工作区未打开表文件,则值为逻辑假(.F.)。若表文件中没有记录,返回逻辑真(.T.)。例:USE学生GOTOP?BOF().F.SKIP-1?BOF().T.,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,40,第一条记录Bof()为假,recno()值为1,最后一条记录Eof()为假Recno()为最后一条记录号,Bof()为真Recno()值为1,最后一条记录的后面Eof()为真Recno()值为最后一条记录号+1,2020/5/19,第二章VisualFoxPro数据基础,41,3.记录号测试函数RECNO()格式:RECNO()功能:返回指定工作区中表文件当前的记录号。的值指定当前工作区号,若省略,测试当前工作区中的表文件的记录号。若测试的工作区未打开表文件,则RECNO()值为零。4.记录数测试函数RECCOUNT()格式:RECCOUNT()功能:返回指定工作区中当前表文件中所有记录的个数。值决定当前工作区号。若省略,则测试当前工作区的表文件。若测试的工作区未打开表文件,则RECCOUNT()值为零。,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,42,5.表文件测试函数格式:DBF()功能:用于给出指定工作区的表文件名。指定工作区号,若无则对当前工作区操作。当指定工作区没有打开的表文件,则返回空串。例:USE学生?DBF()显示D:世界杯表学生.dbf6.空值(NULL)测试函数ISNULL()格式:ISNULL()功能:判断一个表达式的运算结果是否为NULL值,若是,返回逻辑真(.T.),否则返回逻辑假(.F.)。NULL值是没有明确值的一种特殊表示。NULL值不等同于零或空格。一个NULL值不能认为比某个值(包括另一个NULL值)大或小,相等或不同。,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,43,7.“空”值测试函数EMPTY()格式:EMPTY()功能:根据表达式的运算结果是否为“空”值,返回逻辑真(.T.)或逻辑假(.F.)。这里的“空”值与NULL值是不同的概念。EMPTY(.NULL.)返回值为逻辑假(.F.)。EMPTY()函数的自变量表达式的类型可以是数值型、字符型、逻辑型和日期型等类型。不同类型数据的“空”值有不同的规定。,2.2常用函数,2.2.5测试函数,不同类型的数据“空”值规定,2020/5/19,第二章VisualFoxPro数据基础,44,8.数据类型测试函数TYPE()和VARTYPE()格式:TYPE()VARTYPE(,)功能:测试表达式的数据类型,返回一个大写字母,表明数据类型。函数值为字符型。返回字母的含义如下。,常用函数,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,45,TYPE()函数:返回表达式的数据类型,要求是用字符定界符括起来的一个表达式,这个表达式可以是常量、变量、字段或其他表达式,如果表达式不用字符定界符括起来,将返回U(未定义)。例:?TYPE(.T.),TYPE(2*3.14*12),TYPE(DATE()LNDD1=HELLO?TYPE(D1),TYPE(D1)UCVARTYPE()函数:返回的数据类型,但函数中的表达式不用字符定界符括起来;决定当的运算结果是NULL值时函数的返回值:如果为.T.,返回的原数据类型;如果为.F.或省略,则返回X,表明的运算结果是NULL值。例:STORE5TOnXnX=.NULL.?TYPE(nX),VARTYPE(nX),VARTYPE(nX,.T.)&数据类型测试仍然是N型NXN,常用函数,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,46,9.条件测试函数IIF()格式:IIF(,)功能:测试的值,如果为真(.T.),函数返回的值,如果为假.F.,函数返回的值。和的类型不要求相同。例:X=100?IIF(X0,x的值大于零,x的值小于等于0)x的值大于零,2.2常用函数,2.2.5测试函数,2020/5/19,第二章VisualFoxPro数据基础,47,数值表达式:是由算术运算符将数值型数据连接起来形成的式子,其运算结果仍然是数值型数据。算术运算符对数值型数据进行算术运算,产生数值、货币结果等。有6种运算符。例:?(45+5-62)/2,(12.44-0.31)*(5-33)7.00-266.86,算术运算符及说明,运算规则及优先级是:先乘除,后加减,乘方优先于乘除,函数优先于乘方,圆括号的优先级别最高。同级运算时,从左至右依次运算。,2.3表达式与运算,2.3.1数值表达式与数值运算,2020/5/19,第二章VisualFoxPro数据基础,48,字符表达式:由字符运算符将字符型数据连接起来而形成的式子。字符运算符:用于对两个字符型数据进行连接运算。+:用于把两个字符串连接形成一个新的字符串。-:连接两个字符串,并将第一个字符串尾部的空格移到新字符串的末尾。例:STOREHELLOTOASTOREEVERYONETOB?A+B,A-BHELLOEVERYONEHELLOEVERYONE$:表示两个字符串之间的包含与被包含的关系,参与运算的数据只能是字符型,但运算结果为逻辑型。格式:$如果被包含在中时其结果为真,否则为假。,例:?“NEW”$“HAPPYNEWYEAR”,study$STUDYCOMPUTER.T.F.,2.3表达式与运算,2.3.2字符表达式与字符运算,2020/5/19,第二章VisualFoxPro数据基础,49,日期或日期时间表达式的运算符有两个:+和-两个日期不能相加(+),只能相减,得到两个指定日期相差的天数。运算符+和-既可以作为日期时间运算符,又可以作为算术运算符和字符串连接运算符。具体作为哪种运算符,由它们所连接的运算对象的数据类型决定。,日期时间表达式的格式,2.3表达式与运算,2.3.3日期时间表达式与日期时间运算,2020/5/19,第二章VisualFoxPro数据基础,50,条件表达式:通常由比较运算符将两个运算对象连接起来形成格式:。比较运算符对两个表达式进行比较运算,产生逻辑结果(真或假)。(1)比较运算符可用在字符、数字和日期型等表达式中,比较运算符要求前后两个运算对象的数据类型必须相同。(2)不同类型的数据进行比较运算时,比较的方式是不一样的。如数字型数据是按其数值大小进行比较的。(3)关系成立时值为真(.T.),否则值为假(.F.)。,比较运算符,2.3表达式与运算,2.3.4条件表达式及比较运算,2020/5/19,第二章VisualFoxPro数据基础,51,1.数值型数据和货币型数据的比较运算按数值的大小比较,包括负数。2.日期和日期时间型数据的比较运算日期型数据是按年、月、日的先后进行比较。两个日期型数据比较,首先比较年份,年份不相同时,年份大的日期较大;年份相同时,比较月份,月份不相同时,月份大的日期较大;月份也相同时,比较日期,日期大的较大,否则相同。例:?1999-08-061998-12-10.T.?1999-08-061999-12-01,1999-08-061999-08-01.F.T.,2.3表达式与运算,2.3.4条件表达式及比较运算,2020/5/19,第二章VisualFoxPro数据基础,52,3.字符型数据的比较运算当比较两个字符串时,系统将对两个字符串的字符从左向右逐个进行比较,一旦发现两个对应字符不同,就根据这两个字符的排序次序决定两个字符串的大小。设置排序次序:对字符排序次序的设置可以通过菜单:(1)选择“工具”菜单下的“选项”命令,打开“选项”对话框。(2)在“选项”对话框选“数据”选项卡上,“排序序列”下拉列表框中选择“Machine(机器)”、“PinYin(拼音)”或“Stroke(笔画)”。“Machine(机器)”:指定字符排序次序按照机内码顺序排序。“PinYin(拼音)”:按照拼音次序排序。对西文字符而言,空格在最前面,小写字母在前,大写字母在后。“Stroke(笔画)”:无论中文或西文,按照书写笔画的多少排序。,2.3表达式与运算,2.3.4.条件表达式及比较运算,2020/5/19,第二章VisualFoxPro数据基础,53,设置排序次序:对排序次序的设置也可以使用命令:SETCOLLATETO“可以是“Machine”、“PinYin”或“Stroke”,必须放在引号当中。例:SETCOLLATETOPinYin?a天天向上!.F.,3.字符型数据的比较运算,2.3表达式与运算,2.3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版农业科技推广项目农药产品销售合作协议
- 2025年网络安全风险评估与安全协议完善合同
- 2025年智慧城市建设承包经营合同范本
- 2025版外墙装修工程索赔处理合同
- 2025年度石料贸易代理服务合同规范
- 2025版双方自愿离婚协议书法律效力评估规范
- 2025年度琼台师范学院产学研合作协议
- 2025年劳动合同制员工职业健康安全合同
- 2025年度体育赛事赞助保证合同-体育赛事风险防控保障
- 2025年度办公大楼绿化养护与景观设计服务合同
- 田英章楷书心经-高清米字格版
- 2021年成都中医药大学辅导员招聘考试题库及答案解析
- 液相色谱柱使用记录
- 项目检查汇报报告(52张)课件
- 直螺纹套筒现场平行检查及记录表
- 精选芭蕾舞男女演员之间的潜规则汇总
- JJG 856-2015 工作用辐射温度计检定规程-(高清现行)
- 新人教版小学美术五年级上册教学设计(全册)
- 益美高引风式冷却塔特点介绍
- 1沥青混合料生产工艺
- 相亲相爱 简谱
评论
0/150
提交评论