数据类型与运算.ppt

上传人:小飞机 文档编号:6364968 上传时间:2023-10-21 格式:PPT 页数:121 大小:262KB
返回 下载 相关 举报
数据类型与运算.ppt_第1页
第1页 / 共121页
数据类型与运算.ppt_第2页
第2页 / 共121页
数据类型与运算.ppt_第3页
第3页 / 共121页
数据类型与运算.ppt_第4页
第4页 / 共121页
数据类型与运算.ppt_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《数据类型与运算.ppt》由会员分享,可在线阅读,更多相关《数据类型与运算.ppt(121页珍藏版)》请在三一办公上搜索。

1、第 2 章数据类型与运算,2.1 数据类型2.2 数据存储2.3 运算符及表达式2.4 函 数2.5 命 令,2.1数据类型,数据是反映现实世界中客观事物属性的记录,它包括两个方面:数据内容与数据形式。数据内容就是数据的值,数据形式就是数据的存储形式和操作使用方式,也称为数据类型。,1字符型数据字符型数据(Character)是指用各种文字字符表示的数据,包括26个英文大小写字母、10个阿拉伯数字、各种汉字、专用符号和空格等,最大长度可达254个字符。2数值型数据数值型数据(Numeric)是指可以进行算术运算的数据,包含09的阿拉伯数字、小数点与正负号,最大长度为20位。,3整型数据整型数据

2、(Integer)是不包含小数点部分的数值型数据,以二进制形式存储,占用4个字节,数值范围为-2 147 483 647+2 147 483 646。该数据类型以字符I为标识。4浮点型数据浮点型数据(Float)是数值型数据的一种,与数值型数据完全等价,但在存储形式上采用取浮点格式。,5双精度型数据双精度型数据(Double)是比浮点型数据具有更高精度的数值型数据,占用8个字节的存储空间,数值范围为4.940 656 458 412 47E-3241.797 693 486 232E308。该数据类型以字符B为标识。6货币型数据货币型数据(Currency)是表示货币量的数据,VFP中用数值型

3、数据表示货币,占用8个字节,取值范围为-922 337 203 685 477.580 8922 337 203 685 477.580 7,小数位超过4位则四舍五入。该数据类型以字符Y为标识。,7逻辑型数据逻辑型数据(Logic)是用来进行各种逻辑判断的数据,只有两个值,即真(.T.)和假(.F.),长度固定为1位,占用1个字节。该数据类型较常用,以字符L为标识。8日期型数据日期型数据(Date)是用来专门表示日期的数据。一个日期型数据的字符存储格式为“YYYYMMDD”,其中YYYY表示年份,占用4个字节,MM表示月份,占用2个字节,DD表示日子,占用2个字节,共占用8个字节。该数据类型较

4、常用,以字符D为标识。,9日期时间型数据日期时间型数据(Date Time)是描述日期和时间的数据。其字符存储格式为“YYYYMMDDHHMMSS”,其中YYYY表示日期中的年份,前两个MM代表月份,DD代表日子,HH表示小时,后两个MM代表分钟,SS代表秒。日期时间型数据保存在两个4字节的整数中。前4个字节保存日期,后4个字节保存时间。日期时间型数据的日期部分也具有多种显示格式,并可以通过SET DATE,SET CENTURY 等命令进行设置;时间部分的显示格式可以通过SET HOURS和SET SECONDS命令进行设置。该数据类型以字符T为标识。,10备注型数据备注型数据(Memo)用

5、于存放数据较长的字符型数据类型,固定占用4个字节的内存空间,这4个字节的内存空间用来存放VFP的内部指针,指示实际数据存放的位置,实际的数据存放在与数据表文件同名的.fpt文件中,并且其存放的内容只受磁盘空间的限制。,11通用型数据通用型数据(General)用于存储OLE(Object Linking and Embedding)对象,只能用于数据表中字段的定义。该字段包含了OLE对象的引用,而OLE对象的具体内容可以是电子表格、文档、图片和音频等。通用型数据长度固定为4位,实际数据长度仅受磁盘空间的限制。该数据类型以字符G为标识。,12字符型数据(二进制)字符型数据用于存储任意不经过代码页

6、修改而维护的字符型数据,只能用在数据表中的字段。13备注型数据(二进制)备注型数据用于存储任意不经过代码页修改而维护的备注型数据,只能用在数据表中的字段。较常用的数据类型有字符型、数值型、逻辑型、日期型和备注型5种。,2.2数据存储,在VFP系统中,数据可用常量、变量和数组等表示,也可以用字段、记录和对象表示。因此,常把这些存储数据的常量、变量、数据、字段、记录和对象等称为数据存储容器。用户正是利用不同的数据存储容器,在VFP系统中表示、存储、操作和处理各种类型的数据,实现数据的处理。,常量常量就是指固定不变的数据,即在整个程序运行过程中其值保持不变。注意:VFP支持6种类型的常量,即字符型、

7、数值型、浮点型、逻辑型、日期型和日期时间型。,1字符型常量字符型常量是用定界符括起来的字符串。2数值型常量数值型常量是数学中的十进制整数或小数。3浮点型常量浮点型常量是数值型常量的浮点格式。4日期型常量日期型常量用来表示一个确切的日期,用大括号作为定界符,默认格式为MM/DD/YY。,5逻辑型常量逻辑型常量只有两个逻辑值:真和假,用圆点定界符括起的大写或小写的T、Y或F、N表示。6日期时间型常量日期时间型常量是按月、日、年和时间排列的年代日期数据,其规定格式为MM/DD/YY HH:MM:SS。,变量变量就是在整个程序运行过程中其值可以改变的数据,包括字段变量和内存变量两种。内存变量又包括一般

8、内存变量、系统内存变量和数组变量。1字段变量字段变量隶属于数据表文件,每个数据表中都包含若干个字段变量。,2内存变量内存变量是独立于数据表文件而存在于内存中的变量,是一种临时的工作单元,需要时可以临时定义,不需要时可以随时释放,它常被用来存储所需要的常量、中间结果或最终结果。,(1)建立内存变量内存变量的建立有多种方式,这里只介绍最简单的一种。格式:STORE TO 或 功能:在定义内存变量的同时确定内存变量的值和类型。例2-1在VFP 的命令窗口中定义变量。B=6&定义变量B并赋值,类型为:N型 STORE B+3 TO C&定义变量C并赋值,类型为:N型 STORE 中国TO A,B,C*

9、同时定义A,B,C 三个变量,其值均相同,类型为:C型,(2)显示或打印全部内存变量格式:LIST/DISPLAY MEMORY LIKE TO PRINTER|TO FILE NOCONSOLE功能:显示或打印一个或多个内存变量的当前内容,或者将这些内容送到一个扩展名为.TXT的文件中。,例2-2定义内存变量A的值为“中国”,A1的值为5,并在屏幕上显示。A=中国“&定义变量A并赋值,类型为:C型 A1=5&定义变量A1并赋值,类型为:N型 LIST MEMORY LIKE A*&连续显示以A开头的所有内存变量结果显示:APubC“中国”A1PubN5(5.00000000),(3)建立内存

10、变量文件内存变量被定义后,通常只存放在内存中,当退出VFP或关机后,内存变量就被清除。如果以后还需要使用所定义的内存变量,可以将其保存在内存变量文件中,需要时从磁盘将其调出即可。命令格式:SAVE TO|TO MEMO ALL LIKE|ALL EXCEPT 功能:将指定的内存变量存入内存变量文件或者备注型字段中。,例2-3在VFP的命令窗口中,执行如下命令:SAVE TO AA SAVE TO MM AL LILE X*SAVE TO BB ALL EXCEPT?Y上例中的第1条命令是把所有已定义的内存变量存入AA.MEM文件中;第2条命令是把所有以X开头的内存变量存入MM.MEM文件中;第

11、3条命令是在已定义的内存变量中,将只有两个字符并且第2个字符为Y的内存变量排除,其他所有的内存变量均存入BB.MEM文件中。,例2-4在VFP的命令窗口中,执行如下命令:RESTORE FROM MM RESTORE FROM BB ADDITIVE第1条命令将MM.MEM文件调入内存,并清除内存中原有的内存变量;第2条命令将BB.MEM文件调入内存,但不清除原有的内存变量。,(4)释放内存变量释放内存变量就是将内存中的内存变量删除,释放出所占用的内存空间。格式:RELEASE 或 RELEASE ALL LIKE/EXCEPT 功能:释放指定的内存变量,但不清除系统内存变量。,例2-5在VF

12、P的命令窗口中,执行如下命令:RELEASE ALL&释放所有已定义的内存变量 RELEASE X,Y,Z&释放已定义的内存变量X,Y,Z RELEASE ALL LIKE A*&释放所有第1个字母是A的内存变量此外,CLEAR MEMORY命令也能够清除所有已定义的内存变量,CLEAR ALL命令在关闭所有文件的同时也将清除所有的内存变量。,3系统内存变量系统内存变量是VFP系统已经定义好的一些变量,通常以下划线“_”开头。因此,在定义内存变量时,其名称最好不要以下划线开头,以免与系统变量重名。,数组数组是一组变量的集合,这些变量的数据类型可以不同,每个数组元素都可以通过一个数值下标被引用,

13、相当于一个内存变量。数组元素的数据类型是通过所赋值的数据类型来确定的。在VFP中,只有一维数组和二维数组。一维数组中的各个元素是按线性排列的;二维数组则类似于一个数据表,第一维是行,第二维是列。,1数组的定义数组的定义可以通过DECLARE和DIMENSION命令来实现。格式:DIMENSION|DECLARE(,),(,)功能:定义一个或若干个一维或二维数组,各数组名之间用逗号分隔。,例2-6在VFP的命令窗口中定义数组。DIMENSION AB(3),C2,3在上例中,定义了一个一维数组AB,并且有3个元素,分别是:AB(1)、AB(2)、AB(3)。数组C为二维数组,有6个元素,分别是:

14、C(1,1)、C(1,2)、C(1,3)、C(2,1)、C(2,2)和C(2,3)。,2数组的赋值数组元素的赋值与普通内存变量一样,可以通过STORE命令或“=”来实现。例2-7给二维数组X和一维数组Y进行赋值。DIMENSION X(3,4),Y(3)STORE 5 TO X Y(1)=325 Y(2)=ABC Y(3)=.T.,3数组的重定义数组在定义好之后,还可以通过DECLARE 或 DIMENSION命令对数组的尺寸和维数进行改变,即可以将一维数组变为二维数组或将二维数组变为一维数组,而且还能改变数组元素的个数,同时将原数组的数据自动复制到重定义的同名数组(简称为新数组)中。新旧数组

15、之间数据的复制原则是:不管原数组和新数组是几维的,都将它们看作是一维数组,从序号1开始顺序地复制到新数组对应的数组元素中去。若新数组的元素个数多于原数组的元素个数,则新增加的数组元素取值为.F.。反之,若新数组的元素个数少于原数组的元素个数,则只取元素组中的前若干个值。,数组下标的排列规则是:数组从下标1开始排列,二维数组的元素排列是先按行排列再按列排列。若已定义了数组A(6)与数组B(2,3),它们的下标排列如下:A(6):A(1),A(2),A(3),A(4),A(5),A(6)B(2,3):B(1,1),B(1,2),B(1,3),B(2,1),B(2,2),B(2,3),4数组的释放同

16、内存变量的释放一样,将数组从内存中删除,释放其所占的内存空间,就是数组的释放,可以使用的命令有如下几种。格式1:CLEAR ALL功能:关闭所有文件,同时清除所有的内存变量、数组等,但不清除系统内存变量。格式2:CLEAR MEMORY功能:清除所有内存中的变量和数组,但不清除系统内存变量。格式3:RELEASE 或 RELEASE ALL LIKE/EXCEPT 功能:清除指定的内存变量或数组,但不清除系统内存变量。,2.3运算符及表达式,运算符是对相同类型的数据进行运算操作的符号,用运算符将常量、变量和函数等数据连接起来的式子称为表达式。值得注意的是,同种类型的数据才可以进行运算,不同类型

17、的数据是不可以进行运算的。,数值运算符及数值表达式数值运算符有:圆括号(())、乘方(*或)、乘(*)、除(/)、模运算或取余(%)、加(+)和减(-)。数值表达式是由数值运算符将数值型常量、变量和函数等连接起来的式子,其结果为数值型。,它们的作用与数学中的算术运算符相同,运算顺序为:先计算圆括号内,然后是乘方,其次是乘、除和取模,最后是加和减,其中乘、除和取模是同级,加和减是同级,从左到右进行计算。例如:5*10/2128%5ab*3-ad,字符串运算符及字符表达式字符表达式是由字符串运算符将字符型常量、变量和函数等连接起来的式子。字符串运算符有4种:完全连接运算符(+)、不完全连接运算符(

18、-)、字符串包含运算符($)和精确比较运算符(=)。完全连接运算符和不完全连接运算符均实现对两个字符串的连接,并且返回字符型数据。但当要连接的两个字符串中的第一个字符串尾部有空格时,所得结果将存在一定的区别。,如果使用完全连接运算符,只是两个字符串的简单连接;如果使用不完全连接运算符,第一个字符串尾部的空格将移到第二个字符串的尾部。例如:首都+经贸大学 结果为 首都 经贸大学首都-经贸大学 结果为 首都经贸大学,字符串包含运算符的返回结果为逻辑值,用来检测左边的字符串是否被包含在右边的字符串中。如果包含,则返回逻辑真值(.T.),否则返回逻辑假值(.F.)。例如:城市$城市经济结果为.T.工人

19、$工程师结果为.F.精确比较运算符的返回结果也为逻辑值,只有当两边的字符串完全相等时,才返回逻辑真值(.T.)。例如:工程师=工程师 结果为.T.工程师=工程师 结果为.F.,日期运算符及日期表达式日期表达式是由日期运算符将日期型常量、变量和函数等数据连接起来的式子,其返回结果为日期型或者数值型数据。日期型运算符只有加法(+)和减法(-)两种。日期型表达式的格式为:+返回结果为日期型数据-返回结果为日期型数据-返回结果为数值型数据,例2-8对下列的日期型表达式进行计算。01/01/1996+20&结果为01/21/199605/30/1998-05/20/1998&结果为1010/28/199

20、5-20&结果为10/08/1995,关系运算符及关系表达式关系表达式是由关系运算符、数值表达式、字符表达式或者日期型表达式组合而成的式子,返回结果为逻辑真值(.T.)或逻辑假值(.F.)。关系运算符有:小于()、等于(=)、不等于(、#或!=)、小于等于(=)。,例2-9计算下列的关系表达式。AB&结果为.F.AB&结果为.T.5+68&结果为.T.,逻辑运算符及逻辑表达式逻辑表达式是由逻辑运算符、逻辑型常量、逻辑型内存变量、逻辑型数组、返回逻辑型数据的函数和关系表达式组成,其结果为逻辑型常量。逻辑运算符有以下3种基本运算:逻辑非(.NOT.)、逻辑与(.AND.)和逻辑或(.OR.)。其运

21、算规则为:进行逻辑与运算时,当参加运算的双方都为真值时,运算结果为真值,否则为假值;进行逻辑或运算时,当参加运算的双方都为假值时,运算结果为假值,否则为真值;进行逻辑非运算时,运算结果为原来的相反值,即原来为真值,运算结果变为假值,原来为假值,运算结果为真值,如表2-1所示。,表2-1 逻辑表达式运算规则,逻辑运算符的优先次序为:.NOT.,.AND.,.OR.。可以使用括号来改变逻辑运算的先后次序。在同一表达式中,如果使用了几种运算符,则各种运算符的运算顺序如图2-1所示。例2-10进行如下的逻辑运算。83.AND.8C.OR.AC&结果为.T.NOT.56&结果为.F.,图2-1 各种运算

22、符的运算顺序,名称表达式 名称表达式是指能代替字符型变量或数组元素的值的一个引用。名称不是一个变量,也不是数组元素,所以不能用定界符括起来,但它可以替代字符变量或数组元素中的值。将名称保存到内存变量或数组元素中时,可以用小括号括起该内存变量,将名称替换成命令或函数。定义一个名称时,只能以字母、汉字或下划线开头,名称中只能使用字母、汉字、数字和下划线字符,最多可以使用254个字符。一次定义多个名称时,各名称之间要用逗号分开。,例2-11运用名称表达式打开一个数据表文件。*将C:STUDENT学生成绩表.dbf赋给AA变量 STORE C:STUDENT学生成绩表.dbf TO AA USE(AA

23、)&相当于命令USE C:STUDENT学生成绩表.dbf该例中USE命令用于打开一个数据表文件,在第3章中将会详细讲解该数据表。在VFP中,可以使用的名有:表(.dbf)文件名、表(.dbf)别名、表(.dbf)字段名、索引文件名、内存变量名和数组名、窗口名和弹出菜单名等。,2.4函数,为了简化某些特定的操作,VFP提供了标准函数,以方便用户的使用,这里介绍一些常用的函数。为了使用方便,先介绍两个命令:格式:?功能:按指定位置显示输出表达式的值。,字符处理函数1宏代换函数&格式:&.功能:用于代换一个字符型变量的内容。调用该函数时,即调用了字符型内存变量的值。,例2-12宏代换函数举例。aa

24、=bb bb=北京?aa,bb,&aa&结果为 bb 北京 北京?&bb 是中国的首都&结果为 北京是中国的首都 n=567.83?356.08+&n&结果为923.91,2计算字符串长度函数 LEN()格式:LEN()功能:计算字符串中的字符个数,返回结果为数值型。例2-13测试字符串的长度。?LEN(ABCDF)&结果为 5 X=首都经贸大学?LEN(X)&结果为 12,3生成空格函数 SPACE()格式:SPACE()功能:产生由数值表达式指定数目的空格,返回结果为字符型。例2-14使用空格生成函数。?北京+SPACE(3)+首都&结果为 北京 首都,4取子字符串函数 SUBSTR()格

25、式:SUBSTR(,)功能:在给定的字符表达式中,截取一个子字符串。其起点位置由数值表达式1给出;截取字符串的字符个数由数值表达式2给出。例2-15使用取子字符串函数。?SUBSTR(“城市经济”,5,4)&结果为 经济 A=行政管理?SUBSTR(A,5)&结果为 管理,5字符串转换成小写字母函数 LOWER()格式:LOWER()功能:将字符表达式中的大写字母转换成小写字母。例2-16将大写字母转换成小写字符。?LOWER(ABCDE)&结果为 abcde,6字符串转换成大写字母函数 UPPER()格式:UPPER()功能:将字符表达式中的小写字母转换成大写字母。例2-17将小写字母转换成

26、大写字符。?UPPER(“abcde”)&结果为 ABCDE,7删除字符串尾部空格函数 TRIM()格式:TRIM()功能:将字符串尾部的空格删除。例2-18删除字符串尾部的空格。X=ABC?LEN(X)&结果为 5 Y=TRIM(X)?LEN(Y)&结果为 3,8删除字符串左边空格函数 LTRIM()格式:LTRIM()功能:将字符串左部的空格删除。例2-19删除字符串左边的空格。X=ABC?LEN(X)&结果为 5 Y=LTRIM(X)?LEN(Y)&结果为 3,9删除字符串右边空格函数RTRIM()格式:RTRIM()功能:与TRIM()函数相同。10删除字符串前导空格和后继空格函数AL

27、LTRI()格式:ALLTRIM()功能:删除字符串中最左边和最右边的所有空格。,例2-20删除字符串左边和右边的空格。X=Visual FoxPro?LEN(X)&结果为 18?ALLTRIM(X)&结果为 Visual FoxPro?LEN(ALLTRIM(X)&结果为 13,11取字符串左边部分字符函数LEFT()格式:LEFT(,)功能:从指定的字符表达式的左边截取数值表达式指定个数的字符。例2-21从字符串的左边取子字符串。?LEFT(ABCD,2)&结果为 AB,12取字符串右边部分字符函数RIGHT()格式:RIGHT(,)功能:从指定的字符表达式的右边截取数值表达式指定个数的字

28、符。例2-22从字符串的右边取子字符串。?RIGHT(“ABCDE”,2)&结果为 DE,13子字符串位置测试函数AT()格式:AT(,)功能:找出子字符串在主字符串中的起始位置,函数返回值为数值型。例2-23测试子字符串的位置。?AT(“IS”,“THAT IS A BOOK”)&结果为 3?AT(IS,THIS IS A BOOK,2)&结果为 6?AT(IS,THIS IS A BOOK)&结果为 9?AT(“D”,“BOOK”)&结果为 0,14测试表达式类型函数 TYPE()格式:TYPE()功能:判断值的数值的数据类型。说明:函数返回值为字符型,各字符含义如表2-2所示。例2-24

29、测试表达式的类型。X=BOY?TYPE(X)&结果为 C,表2-2 函数TYPE()返回值及其含义,数值处理函数1取整函数INT()格式:INT()功能:返回数值表达式的整数部分。例2-25使用取整函数。?INT(-6.77)&结果为-6?INT(7.89)&结果为 7?INT(13.6+12.5)&结果为 26,2四舍五入函数ROUND()格式:ROUND(,)功能:对数值表达式1的值进行四舍五入运算。例2-26使用四舍五入函数。?ROUND(23.45632,3)&结果为 23.456?ROUND(23.56,0)&结果为 24?ROUND(23.45632,-1)&结果为 20?ROUN

30、D(2356.632,-2)&结果为 2400,3取绝对值函数 ABS()格式:ABS()功能:求出数值表达式的绝对值。例2-27使用绝对值函数。?ABS(-60)&结果为 60,4最大值函数MAX()格式:MAX(,)功能:返回两个数值表达式中最大的值。例2-28使用最大值函数。?MAX(30,45)&结果为 45?MAX(-5,-20)&结果为-5,5最小值函数MIN()格式:MIN(,)功能:返回两个数值表达式中最小的值。例2-29使用最小值函数。?MIN(30,45)&结果为 30?MIN(-5,-20)&结果为-20,6求平方根函数SQRT()格式:SQRT()功能:返回数值表达式中

31、最小的值.例2-30使用平方根函数。?SQRT(19.26)&结果为 4.39,7求自然对数函数LOG()格式:LOG()功能:求数值表达式的自然对数值。例2-31使用自然对数函数。?LOG(20.56)&结果为 3.02,8幂函数EXP()格式:EXP()功能:求数值表达式对E的幂的值。例2-32使用幂函数。?EXP(3.05)&结果为 21.12,9求余数函数 MOD()格式:MOD(,)功能:计算除以的余数,其中的值不能为0。例2-33使用求余函数。?MOD(10,3)&结果为 1?MOD(10,-3)&结果为-2?MOD(15,-4)&结果为-1?MOD(-15,-4)&结果为-3,1

32、0IIF()函数格式:IIF(,)功能:如果的值为真,函数为的值,否则为的值。例2-34使用IIF()函数。X=30 X=50?IIF(XY,50+X,100+Y)&结果为 150,日期和时间处理函数1系统当前日期函数DATE()格式:DATE()功能:返回当前系统的日期值。返回值为日期型,其格式可由SET DATE、SET CENTURY和SET MARK TO改变。例2-35显示当前系统日期。?DATE()&结果为 03/20/98,2系统当前时间函数TIME()格式:TIME()功能:以时、分、秒(HH:MM:SS)的格式显示系统的当前时间,返回值为字符型。例2-36显示当前系统。?TI

33、ME()&结果为 9:54:20?TIME()&结果为 9:58:10.60,3日函数DAY()格式:DAY(/)功能:返回日期型、日期时间型表达式的日的数值。函数返回值为数值型。例2-37取出日期型函数的日的值。?DAY(DATE())&结果为 15,4月份函数 MONTH()格式:MONTH(|)功能:返回日期型、日期时间型表达式的月份值。函数返回值为数值型。例2-38取出日期型函数的月份值。?MONTH(DATE())&结果为 6,5年份函数YEAR()格式:YEAR(/)功能:返回日期型、日期时间型表达式的年份值。函数返回值为数值型。例2-39取出日期型函数的年份值。?YEAR(DAT

34、E())&结果为 2000,数据转换函数1字符转换成ASCII码函数ASC()格式:ASC()功能:给出中最左边字符的ASC码的十进制数。函数返回值为数值型。例2-40使用ASC()函数求出字符串的ASC码值。?ASC(ABCD)&结果为 65,2ASC码值转换成字符函数CHR()格式:CHR()功能:将的值作为ASC码的十进制数,给出对应的字符。函数返回值为字符型。例2-41求出ASC码的十进制数。?CHR(66)&结果为 B,3数值型转换为字符型函数STR()格式:STR(,)功能:将的值转换成字符型数据。例2-42将数值型数据转换成字符型数据。?STR(95643.5136)&结果为 9

35、5644?STR(95643.5136,8,2)&结果为 95643.51?STR(95643.5136,8)&结果为 95644?STR(95643.5136,3)&结果为*,4字符型转换成数值型函数VAL()格式:VAL()功能:将数字形式的字符表达式的值转换为数值型数据。例2-43将字符型数据转换成数值型。?VAL(8769.3421)&结果为 8769.34?VAL(8769AB21)&结果为 8769.00?VAL(AB8769.3421)&结果为 0.00,5字符型转换成日期型函数CTOD()格式:CTOD()功能:将日期形式的字符串转换成日期型数据。函数返回值为日期数据型。说明:

36、必须是一个有效的日期格式,缺省格式为mm/dd/yy。例2-44将字符型数据转换成日期型。?CTOD(06/20/99)&结果为 05/23/98,6日期型转换成字符型函数DTOC()格式:DTOC(/,1)功能:返回对应一个日期或日期时间表达式的字符串,返回值为字符型。说明:如果有,1选项,则按照年月日的格式输出。例2-45将日期型数据转换成字符型。X=CTOD(06/20/99)?DTOC(X)&结果为 06/20/99?DTOC(X,1)&结果为 19990620,与数据表有关的函数1表文件开始测试函数 BOF()格式:BOF()功能:检测当前或指定工作区中表的记录指针是否位于第一条记录

37、之前,如果是,返回真值(.T.),否则返回假值(.F.)。例2-46使用BOF()函数。USE 学生成绩.dbf?BOF()&结果为.F.SKIP-1?BOF()&结果为.T.,2表文件结束测试函数EOF()格式:EOF()功能:检测当前或指定工作区中表的记录指针是否位于最后一条记录之后,如果是,返回真值(.T.),否则返回假值(.F.)。例2-47使用EOF()函数。USE 学生成绩.dbf?EOF()&结果为.F.GO BOTTOM?EOF()&结果为.F.SKIP?EOF()&结果为.T.,3记录号测试函数RECNO()格式:RECNO()功能:给出当前或指定工作区中当前记录的记录号。函

38、数返回值为数值型。例2-48使用记录号测试函数。USE学生成绩.DBF?RECNO()&结果为 1 GOTO 4?RECNO()&结果为 4,4测试查询结果函数FOUND()格式:FOUND()功能:用于测试查询表文件或索引文件的记录是否找到,如果找到,结果为逻辑真值,否则为逻辑假值。,5测试文件存在函数FILE()格式:FILE()功能:测试指定的文件是否存在,如果存在,返回逻辑真值,否则返回逻辑假值。说明:文件名应包括扩展名,文件名两端要用引号括起来,如果无引号,系统则默认为是变量名。例2-49使用测试文件存在函数。?FILE(学生成绩.dbf)&结果为.T.,6记录删除测试函数DELET

39、ED()格式:DELETED()功能:如果当前或指定工作区中的当前记录被做过删除标记,则返回逻辑真值,否则返回逻辑假值。,7检测表文件名函数DBF()格式:DBF()功能:返回当前或指定工作区中打开的数据表文件名。返回值为字符型。说明:如果没有打开的表文件,则返回空串。例2-50检测表文件名。USE 学生表.dbf?DBF()结果为:c:program filesmicrosoft visual studiovfp98学生表.dbf,8检测表文件别名函数ALIAS()格式:ALIAS()功能:返回当前或指定工作区中打开的数据表文件的别名。返回值为字符型。说明:如果没有打开的表文件,则返回字符串

40、。,9检测表文件别名函数SELECT()格式:SELECT(0/1/别名)功能:返回当前工作区号或者返回未使用的工作区的最大编号。说明:参数0指定SELECT返回当前工作区号;参数1指定SELECT返回未使用工作区的最大编号;参数别名指定SELECT返回表文件别名所在的工作区编号。函数返回值为数值型。,10测试表文件是否打开函数USED()格式:USED()功能:判断指定的工作区是否有表文件打开。说明:函数返回值为逻辑型。如果在指定的工作区中有表文件打开,返回逻辑真值,否则返回逻辑假值。,显示位置函数1光标列坐标函数COL()格式:COL()功能:给出光标当前列的位置,函数返回值为数值型。,2

41、光标行坐标函数ROW()格式:ROW()功能:给出光标当前行的位置,函数返回值为数值型。,文件管理函数1返回当前目录函数CURDIR()格式:CURDIR(字符表达式)功能:返回当前目录。例2-51返回当前目录。?CURDIR()结果为:PROGRAM FILESMICROSOFT VISUAL STUDIOVFP98,2测试指定目录函数DIRECTORY()格式:DIRECTORY()功能:如果在磁盘上发现了指定目录,返回真值。说明:该函数返回值为逻辑型。给出指定要定位的目录名。如果在指定的目录中有给出绝对路径,则相对于VFP缺省目录查找该目录。,3磁盘可用空间测试函数 DISKSPACE(

42、)格式:DISKSPACE()功能:返回缺省驱动器或指定的磁盘驱动器的可用字节数。说明:该函数返回值为数值型。在使用时,要加上字符串定界符。,4测试文件大小函数FSIZE()格式:FSIZE(,/)功能:以字节为单位返回指定字段或文件的大小。例2-52测试文件大小。SET COMPATIBLE OFF CLOSE ALL USE学生表?FSIZE(姓名)&结果为 8?FSIZE(性别)&结果为 2,5选择目录函数GETDIR()格式:GETDIR(,)功能:显示“选择目录”对话框,可以从中选择目录;或者显示“选择文件夹”对话框,可以从中选择文件夹。例2-53选择目录函数实例。?GETDIR(C

43、:PROGRAM FILES,请在下面选择:)在命令窗口中输入上述命令后,将会弹出如图2.2所示的窗口。当选择所需目录后,单击“选定”按钮,主窗口中将返回所选定的目录字符串。假如在本例中选定“Microsoft Visual Studio”,然后再选取VFP98,然后单击“选定”按钮,在主窗口中将会显示如下的结果:C:PROGRAM FIELSMICROSOFT VISUAL STUDIOVFP98,6打开文件函数GETFILE()格式:GETFILE(,)功能:显示“打开文件”对话框,返回用户选择的文件名。,图2.2“选择目录”窗口,7另存为函数PUTFILE()格式:PUTFILE(,)功

44、能:激活“另存为”对话框,返回指定的文件名。,数组函数1数组拷贝函数ACOPY()格式:ACOPY(,)功能:将源数组中指定的元素复制到目标数组中。函数返回值是一个整数,说明已经复制了的元素个数。,2数组内容排序函数ASORT()格式:ASORT(,)功能:对指定的数组根据排序方式进行升序或降序排序。,3数据元素删除函数ADEL()格式:ADEL(,2)功能:从一维数组中删除一个元素,或者从二维数组中删除一行或者一列。4数组插入元素函数AINS()格式:AINS(,2)功能:在一维数组中插入一个元素,或者在二维数组中插入一行或者一列元素。,5数组长度测试函数ALEN()格式:ALEN(数组名,

45、测试类别)功能:返回数组中元素的个数、行数或者列数。6数组元素查找函数ASCAN()格式:ASCAN(,)功能:在数组中查找包含与指定表达式类型、数据都相同的元素。,系统函数格式:SYS()说明:VFP提拱了大量的系统函数SYS(),其中数值表达式的值不同,系统将完成不同的功能。函数返回结果为字符型。例如,SYS(1)返回机器名和网络机器号;SYS(5)返回当前缺省的驱动器名;SYS(17)返回当前正在使用的中央处理器的类型;SYS(101)返回当前SET DEVICE的设置;SYS(103)返回当前SET TALK的设置;SYS(2018)为最近的错误返回出错的原因信息。,2.5命令,命令的

46、书写规则及约定(1)命令格式命令动词范围子句FIELDS FOR WHILE OFF(2)命令书写规则(3)本教材的两个约定的说明,图2.3设置默认目录,常用的环境设置命令1SET DATE命令格式:SET DATE TO AMERICAN|ANSI|BRITISH|USA|MDY|DMY|YMD功能:设置当前日期的格式。说明:各种设置的结果如表2-3所示。,表2-3常用的环境设置命令,2SET CENTURY命令格式:SET CENTURY ON/OFF功能:确定是否显示日期表达式中的世纪部分。说明:ON表示在日期格式中指定年份为4位,整个日期为10位(包括分隔符);OFF表示指定日期格式中

47、年份为2位,整个日期为8位,假定日期是在20世纪范围之内,为默认格式。,3SET HOURS 命令格式:SET HOURS TO 12/24功能:把系统时钟设置成12小时方式或者24小时方式。4SET SECONDS 命令格式:SET SECONDS ON/OFF功能:决定显示日期时间值时,是否显示秒。说明:ON(默认)指定在日期时间值中显示秒,OFF指定不显示秒。,5SET DEVICE 命令格式:SET DEVICE TO SCREEN/TO PRINTER/TO FILE 功能:把.SAY的输出发送到屏幕、打印机或文件。6SET DEFAULT命令格式:SET DEFAULT TO 功能

48、:指定缺省的驱动器和目录。,7SET TALK命令格式:SET TALK ON/OFF功能:确定是否显示命令的执行结果。说明:ON允许将命令的结果发送到VFP的主窗口;OFF禁止将结果输出到屏幕。8SET DECIMALS命令格式:SET DECIMALS TO 功能:指定数值型表达式中显示的十进制小数位数。说明:命令中的指定显示的小数位数,默认值为两位小数。,9SET SAFETY命令格式:SET SAFETY ON/OFF功能:在改写文件时,是否显示对话框确认改写有效。说明:ON(默认)指定在改写已存在的文件之前显示对话框,以选择是否改写;OFF指定在已存在的文件改写之前不显示对话框。,10SET DELETED命令格式:SET DELETED ON/OFF功能:在使用某些命令时,指定是否对加了删除标记的记录进行操作。说明:ON指定忽略做了删除标记的记录;OFF(默认)则不忽略做了删除标记的记录。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号