




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第第2章章 Visual FoxPro基础基础 2. 1Visual FoxPro的数据类型的数据类型Visual FoxPro定义了定义了13种数据类型,这些类型可分为两大类:一类种数据类型,这些类型可分为两大类:一类只适用于数据表中的字段,另一类不仅适用于字段,还适用于程序只适用于数据表中的字段,另一类不仅适用于字段,还适用于程序设计中的内存变量和数组。设计中的内存变量和数组。基本数据类型基本数据类型(1)字符型字符型(C):由字母、汉字、数字、空格等任意:由字母、汉字、数字、空格等任意ASCII码字符组成。码字符组成。字符的长度为字符的长度为0254,每个字符占,每个字符占1个字节。个
2、字节。(2)数值型数值型(N)用来表示数量,它由数字用来表示数量,它由数字09、一个符号、一个符号(+或或-)和一个和一个小数点小数点(.)组成。数值型数据的长度为组成。数值型数据的长度为120,数值型数据取值的范围,数值型数据取值的范围是:是:-.9999999999E+19.9999999999E+20(3)货币型货币型(y):在使用货币值时,可以使用货币型来代替数值型。货:在使用货币值时,可以使用货币型来代替数值型。货币型数据取值的范围是:币型数据取值的范围是:-922 337 203 685 477.580 7922 337 203 685 477.580 7小数位数超过小数位数超过4
3、位时位时,系统将进行四舍五入的处理。每个货币型数据系统将进行四舍五入的处理。每个货币型数据占占8个字节。个字节。 (4)日期型日期型(D):用以保存不带时间的日期值。日期型数据的存储格式为:用以保存不带时间的日期值。日期型数据的存储格式为yyyymmdd其中其中yyyy为年,占为年,占4位,位,mm为月,占为月,占2位,位,dd为日,占为日,占2位。位。日期型数据的表示有多种格式,最常用的格式为日期型数据的表示有多种格式,最常用的格式为mm/dd/yyyy。日期型数据取值的范围是:公元日期型数据取值的范围是:公元0001年年1月月1日日公元公元9999年年12月月31日。日。(6)日期时间型日
4、期时间型(T):用以保存日期和时间值。日期时间型数据的存储格式为:用以保存日期和时间值。日期时间型数据的存储格式为“yyyymmddhhmmss”其中其中yyyy为年,占为年,占4位,位,mm为月,占为月,占2位,位,dd为为日,占日,占2位,位,hh为时间中的小时,占为时间中的小时,占2位,位,mm为时间中的分钟,占为时间中的分钟,占2位,位,ss为时间中的秒,占为时间中的秒,占2位。位。日期时间型数据中可以只包含一个日期或者只包含一个时间值,缺省日期日期时间型数据中可以只包含一个日期或者只包含一个时间值,缺省日期值时,系统自动加上值时,系统自动加上1999年年12月月31日,省略时间值时,
5、则自动加上午夜零日,省略时间值时,则自动加上午夜零点。点。(6)逻辑型逻辑型(L):用于存储只有两个值的数据。存入的值只有真:用于存储只有两个值的数据。存入的值只有真(.T.)和假和假(.F.)两种状态,占两种状态,占1个字节。个字节。Visual FoxPro的数据类型的数据类型 (7)双精度型双精度型(Double):用于取代数值型,以便能提供更高的数值:用于取代数值型,以便能提供更高的数值精度。双精度型只用于数据表中字段的定义,它采用固定存储长精度。双精度型只用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型的小数点的位置是由度的浮点数形式。与数值型不同,双精
6、度型的小数点的位置是由输入的数据值来决定的。输入的数据值来决定的。双精度型数值的取值范围是:双精度型数值的取值范围是:+/-4.94065645841247E-324+/-8.9884656743115E307每个双精度型数据占每个双精度型数据占8个字节。个字节。(8)浮点型浮点型(Float):只能用于数据表中字段的定义,包含此类型是:只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。为了提供兼容性,浮点型在功能上与数值型等价。(9)通用型通用型(G):用于存储:用于存储OLE对象对象,只能用于数据表中字段的定义。只能用于数据表中字段的定义。该字段包含了对该
7、字段包含了对OLE对象的引用,而对象的引用,而OLE对象的具体内容可以是对象的具体内容可以是一个电子表格、一个字处理器的文本、图片等,是由其他应用软一个电子表格、一个字处理器的文本、图片等,是由其他应用软件建立的。件建立的。 Visual FoxPro的数据类型的数据类型(10)整型整型(I):用于存储无小数部分的数值,只能用于数据表中:用于存储无小数部分的数值,只能用于数据表中字段的定义。在字段的定义。在数据表中,整型字段占用数据表中,整型字段占用4个字节,取值范围是:个字节,取值范围是:-21474836472147483647整型以二进制形式存储,不像数值型那样需要转换成整型以二进制形式
8、存储,不像数值型那样需要转换成ASCII字字符存储。符存储。(11)备注型备注型(M):备注型用于字符型数据块的存储,只能用于数:备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用据表中字段的定义。在数据表中,备注型字段占用4个字节,个字节,并用这并用这4个字节来引用备注的实际内容。实际备注内容的多少个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。只受内存可用空间的限制。备注型字段的实际内容变化很大,不能直接将备注内容存在数备注型字段的实际内容变化很大,不能直接将备注内容存在数据表据表(.DBF)文件中。系统将备注内容存放在一个相对独立的
9、文文件中。系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为件中,该文件的扩展名为.FPT。 Visual FoxPro的数据类型的数据类型(12)字符型字符型(二进制二进制):用于存储任意不经过代码页修改:用于存储任意不经过代码页修改而维护的字符数据,只能用于数据表中字段的定义。而维护的字符数据,只能用于数据表中字段的定义。(13)备注型备注型(二进制二进制):用于存储任意不经过代码页修改:用于存储任意不经过代码页修改而维护的备注型数据,只能用于数据表中字段的定义。而维护的备注型数据,只能用于数据表中字段的定义。 数据存储与运算方式数据存储与运算方式 在在Visual FoxProV
10、isual FoxPro系统环境下,数据输入、输出是通过数据的系统环境下,数据输入、输出是通过数据的存储设备完成的。存储设备完成的。可将数据存入到常量、变量、数组中,还可以存入到字段、可将数据存入到常量、变量、数组中,还可以存入到字段、记录和对象中。记录和对象中。这些供数据存储的常量、变量、数组、字段、记录和对象称这些供数据存储的常量、变量、数组、字段、记录和对象称为数据存储容器。为数据存储容器。 1.1.常量常量 常量是一个具体的数据项,其特征是在所有的操作中其值不变。常量是一个具体的数据项,其特征是在所有的操作中其值不变。常量有以下六种。常量有以下六种。 (1)(1)数值型常量数值型常量
11、由数字(由数字(0 09 9)、小数点和正负号组成。)、小数点和正负号组成。123、-34.56 0.55E3 8E-3 (2)(2)字符型常量字符型常量 由汉字和由汉字和ASCIIASCII字符集中可打印字符组成的字符串,使用时字符集中可打印字符组成的字符串,使用时必须用定界符括起来。必须用定界符括起来。 “”“” “你好你好”hello abc (3) (3)逻辑型常量逻辑型常量 由表示逻辑判断结果由表示逻辑判断结果“真真”或或“假假”符号组成。符号组成。 .t. .y. .f. .n. (4) (4)日期常量日期常量 用于表示日期,其规定格式以用于表示日期,其规定格式以yyyy-mm-d
12、dyyyy-mm-dd表示。表示。 2009-3-4 (5) (5)时间日期型常量时间日期型常量 用于表示时间日期,其规定格式以用于表示时间日期,其规定格式以yyyy-mm-dd hh:mm:ssyyyy-mm-dd hh:mm:ss表示。表示。 2009-02-20,4:48:10 p 2.2.内存变量内存变量 P23P23 内存变量形式内存变量形式: :内存变量内存变量、数组变量、数组变量、系统变量、系统变量、字段字段变量变量。每一个内存变量都必须有一个固定的名称,以标识。每一个内存变量都必须有一个固定的名称,以标识该内存单元的存储位置。当退出该内存单元的存储位置。当退出Visual Fo
13、xPro Visual FoxPro 系统后,系统后,内存变量也会与系统一起消失。内存变量也会与系统一起消失。 用户可以根据需要定义内存变量类型,用户可以根据需要定义内存变量类型,它的类型取决它的类型取决于接受的数据的类型于接受的数据的类型。 它的类型有数值型它的类型有数值型N N、字符型、字符型C C、逻辑型、逻辑型L L、日期型、日期型D D、时、时间日期型间日期型T T、货币型、货币型Y Y、对象型、对象型O O七种。七种。 内存变量的命名内存变量的命名 : 内存变量名的长度内存变量名的长度1-1281-128个字符,是由字母、数字和下划线组成。个字符,是由字母、数字和下划线组成。如果内
14、存变量与数据表中的字段变量同名时,用户在引用内存变量时,如果内存变量与数据表中的字段变量同名时,用户在引用内存变量时,要在其名字前加一个要在其名字前加一个m.m.,用以强调这一变量是内存变量,用以强调这一变量是内存变量。内存变量的赋值:内存变量的赋值:内存变量的赋值和输出,可以使用内存变量的赋值和输出,可以使用STORESTORE、“=”=”或或“?”?”命令进行操命令进行操作完成作完成。三个命令的格式如下:。三个命令的格式如下: .STORE .STORE TO TO . .= .? .? 系统变量:系统变量名都以下划线开头系统变量:系统变量名都以下划线开头_screen.fontsize=
15、12内存变量的作用域:内存变量的作用域: 每个内存变量都有它的作用域。用户可以通过每个内存变量都有它的作用域。用户可以通过LOCALLOCAL、PRIVATEPRIVATE、PUBLICPUBLIC命令规定作用域,也可以使用系统默认的范围作为内存变量的作用域。命令规定作用域,也可以使用系统默认的范围作为内存变量的作用域。X=90A1=“hello”Store .t. to a,b,c 变量的释放变量的释放 当程序结束,从内存中删除或释放变量的命令是:当程序结束,从内存中删除或释放变量的命令是: RELEASE 内存变量表内存变量表 这里,内存变量表中的各个变量用逗号分隔。这里,内存变量表中的各
16、个变量用逗号分隔。 还可以使用还可以使用CLEAR MEMORY命令清除所有的内存命令清除所有的内存变量。变量。 变量的显示变量的显示 显示内存变量的命令格式有两种:显示内存变量的命令格式有两种: LIST MEMORY LIKE 通配符通配符TO PRINTER PROMPT|TO FILE 文件名文件名 DISPLAY MEMORY LIKE 通配符通配符TO PRINTERPROMPT|TO FILE 文件名文件名 例例:LIST MEMORY like a* 表达式与运算符表达式与运算符 表达式是由数据、数据存储容器和表达式是由数据、数据存储容器和运 算 符 组 成 的 运 算 式 。
17、 在运 算 符 组 成 的 运 算 式 。 在 V i s u a l V i s u a l FoxProFoxPro系统中根据不同的运算符及表达系统中根据不同的运算符及表达式结果的不同,表达式可以分为以下五式结果的不同,表达式可以分为以下五种:种:1.1.算术表达式算术表达式 算术表达式可由算术运算符和数值算术表达式可由算术运算符和数值型常量、数值型变量、返回数值型数据型常量、数值型变量、返回数值型数据的函数组成。运算结果是数值型常数。的函数组成。运算结果是数值型常数。 数值型表达式数值型表达式 算术运算符有算术运算符有6种种,按优先级由高到低的排列顺序为按优先级由高到低的排列顺序为:*或
18、或(乘方乘方).*(乘乘)、/(除除)、%取模取模,即取两个数相除的余数即取两个数相除的余数.+(加加)、一、一(减减)此外此外,还可以使用圆括号改变运算顺序。还可以使用圆括号改变运算顺序。例如例如:A=6?(8+A)/2&显示结果为显示结果为:7.0000?20%3&显示结果为显示结果为:2?3*A-26&显示结果为显示结果为:-8?210&显示结果为显示结果为:1024.00 字符型表达式字符型表达式 2.2.字符表达式字符表达式 字符表达式可由字符运算符和字符型常量、字符型变量和返字符表达式可由字符运算符和字符型常量、字符型变量和返回字符型数据的函数组成。
19、字符表达式运算的结果是字符串回字符型数据的函数组成。字符表达式运算的结果是字符串 字符运算符只有两种字符运算符只有两种:+(完全连接运算符完全连接运算符,将两个或多个字符串按顺序直接连接成将两个或多个字符串按顺序直接连接成一个字符串一个字符串)-(不完全连接运算符不完全连接运算符,用于连接两个字符串用于连接两个字符串,并将前一个字符并将前一个字符串尾部的空格移到结果字符串的尾部串尾部的空格移到结果字符串的尾部)例如例如:姓名姓名=”王小红王小红”?”姓名姓名”+姓名姓名&显示结果为显示结果为:姓名王小红姓名王小红?”Visual”+”FoxPro”+”6.0” &显示结果为显示
20、结果为:Visual FoxPro6.0?”科学科学 ”+”技术技术”&显示结果为显示结果为:科学科学 技技术术? ”科学科学 ”-”技术技术”&显示结果为显示结果为:科学技术科学技术 3.3.时间日期表达式时间日期表达式 时间日期表达式可由日期运算符和时间日期表达式可由日期运算符和时间日期型常量、时间日期型内存变量时间日期型常量、时间日期型内存变量和数组、返回时间日期型数据的函数组和数组、返回时间日期型数据的函数组成。时间日期表达式运算的结果是时间成。时间日期表达式运算的结果是时间日期型常数。日期型常数。 日期运算符有两种日期运算符有两种 日期运算符有两种日期运算符有两种:
21、+(相加相加) -(相减相减) 例如例如: ?2008-9-10+30 &显示结果为显示结果为 10/10/08 ?2008-9-10-30 &显示结果为显示结果为:08/11/08 ?2008-10-1-2008-9-10 &显示结果显示结果 为为21 关系运算符关系运算符P694.4.关系表达式关系表达式 关系表达式可由关系运算符和字符表达式、算术表达式、时间日期表达关系表达式可由关系运算符和字符表达式、算术表达式、时间日期表达式组成。其运算结果为逻辑型常量。式组成。其运算结果为逻辑型常量。关系运算是运算符两边同类型元素的比关系运算是运算符两边同类型元素的比较,关系
22、成立结果为(较,关系成立结果为(T);反之,结果为();反之,结果为(F)。 关系运算符有关系运算符有8种种,它们的优先级相同它们的优先级相同,由其先后顺序和括号来决定运算次由其先后顺序和括号来决定运算次序。序。(大于大于)= (大于或等于大于或等于)= (小于或等于小于或等于)= (等于等于) ?”ab”=“a” &.t.list for 姓名姓名=李李#或或!=或或 (不等于不等于list for 姓名姓名#李李=(完全等于完全等于,两个字符串完全相同才为真两个字符串完全相同才为真)?”ab”=“a” &.f.list for 姓名姓名=李李$(包含包含,右串包含左串才为真
23、右串包含左串才为真,或者说左串为右串的子串才为真或者说左串为右串的子串才为真)?”a”$”ab” &.t.list for 李李$姓名姓名 说明:说明: 关系运算符两侧值或表达式的类型应一致。关系运算符两侧值或表达式的类型应一致。 数学不等式数学不等式a x b,在,在VFP中不能写成中不能写成a = x =a AND x =90&显示结果为显示结果为:.F.?S1200&显示结果为显示结果为:.T.?S1200&显示结果为显示结果为:.F. 运算符的优先顺序运算符的优先顺序 运算符的优先顺序运算符的优先顺序 在一个表达式中进行多种操作时,在一个表达式中进行多种
24、操作时,VFP会按一定的会按一定的顺序进行求值,称这个顺序为运算符的优先顺序。运顺序进行求值,称这个顺序为运算符的优先顺序。运算符的优先顺序,见表算符的优先顺序,见表5-4。 说明:说明: 同级运算按照它们从左到右出现的顺序进行计算。同级运算按照它们从左到右出现的顺序进行计算。 可以用括号改变优先顺序,强令表达式的某些部可以用括号改变优先顺序,强令表达式的某些部分优先运行。分优先运行。 括号内的运算总是优先于括号外的运算,在括号括号内的运算总是优先于括号外的运算,在括号之内,运算符的优先顺序不变。之内,运算符的优先顺序不变。 优先顺序优先顺序运算符类型运算符类型运算符运算符1算术运算符算术运算
25、符(指数运算)(指数运算)2(负数)(负数)3*、/(乘法和除法)(乘法和除法)4%(求模运算)(求模运算)5+、(加法和减法)(加法和减法)6字符串运算符字符串运算符+、(字符串连接)(字符串连接)7关系运算符关系运算符=、=、$、=8逻辑运算符逻辑运算符NOT9AND10OR【例【例5-1】设变量】设变量x = 3,y = -2,a = 6.5,b = 7.2,求下列表达式的值:,求下列表达式的值: x + y a + b AND NOT y 0.7 AND NOT y b 再作关系运算再作关系运算 .T. AND NOT .F. 作逻辑非运算作逻辑非运算 .T. AND .T. 最后得最
26、后得 .T. 函数函数 在在Visual FoxProVisual FoxPro系统中提供了一批标准函数,可以使用系统中提供了一批标准函数,可以使用户以简便的方式完成某些特定的操作。根据函数的功能,可将户以简便的方式完成某些特定的操作。根据函数的功能,可将标准函数大致分为标准函数大致分为. .: 数值类函数数值类函数 字符类函数、字符类函数、 数据转换类函数数据转换类函数 日期和时间类函数日期和时间类函数 变量处理类函数变量处理类函数 数据库类函数数据库类函数 环境类函数环境类函数 数据共享类函数数据共享类函数 输入和输出类函数输入和输出类函数 编程类函数和动态数据操作类函数编程类函数和动态数
27、据操作类函数 这些函数的格式与功能,详见附录一这些函数的格式与功能,详见附录一“常用函数一览常用函数一览表表”。 函数的一般形式函数的一般形式 函数的一般形式为:函数的一般形式为:函数名函数名(参数参数1,参数参数2) 函数名后紧跟括号,括号内为参数(即自变量)。函数名后紧跟括号,括号内为参数(即自变量)。没有参数的函数称为无参函数。没有参数的函数称为无参函数。 函数名、参数和函数值是函数的三要素。函数名、参数和函数值是函数的三要素。函数类型通常是指函数值的类型。函数类型通常是指函数值的类型。 例如:例如:SQRT(64) &平方根函数,结果为平方根函数,结果为8.00 1.数值型函数
28、数值型函数 绝对值函数绝对值函数 格式格式:ABS() 功能功能:返回指定表达式的绝对值。返回指定表达式的绝对值。 ?ABS(-5)&显示结果为显示结果为5 平方根函数平方根函数格式:格式:SQRT()功能:求功能:求的算术平方根。的算术平方根。例例6:?:?SQRT(2),SQRT(256) ?(2*6)(1/2)&显示结果为显示结果为3.46 (开平方就是开平方就是1/2乘方乘方,显然函数更简洁一些显然函数更简洁一些) 圆周率函数圆周率函数 圆周率函数圆周率函数 格式格式:PI() 功能功能:返回圆周率返回圆周率(数值型数值型)。 该函数没有自变量。该函数没有自变量。 取整
29、函数取整函数格式:格式:INT()功能:取表达式的整数部分(舍去小数部分)。功能:取表达式的整数部分(舍去小数部分)。例例3: ? INT(13.4) &13?INT(-13.6) &-13 四舍五入函数四舍五入函数格式格式:ROUND(,) 功能功能:返回指定表达式在指定位置四舍五入后的结果。返回指定表达式在指定位置四舍五入后的结果。数值表达式数值表达式2指明四舍五入的位置。若数值表达式指明四舍五入的位置。若数值表达式2大于大于0,那么它表示的是要保留的小数位置;若数值表达,那么它表示的是要保留的小数位置;若数值表达式式2小于小于0,则表示的是整数部分的舍入位数。,则表示的是
30、整数部分的舍入位数。 X=345.678 ?ROUND(X,2) &显示结果为显示结果为345.68 ?ROUND(X,0) &显示结果为显示结果为346 ?ROUND(X,-1) &显示结果为显示结果为350 求余函数求余函数(或求模函数或求模函数)格式:格式:MOD(,)功能:求功能:求除以除以的余数。的余数。其正负号与其正负号与相同。相同。例例8:?MOD(50,7),MOD(50,-7),MOD(-50,7),MOD(-50,-7) 求最大值和最小值函数求最大值和最小值函数 格式:格式:MAX(数值表达式数值表达式l,数值表达式数值表达式2,数值表数值表达式达式
31、3) MIN则则(,数值表达式数值表达式3) 功能功能:MAX()计算各自变量表达式的值计算各自变量表达式的值,并返回其中的最大并返回其中的最大值。值。 MIN()计算各自变量表达式的值计算各自变量表达式的值,并返回其中的最小值。并返回其中的最小值。 自变量表达式的类型可以是数值型、字符型、货币型、双自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的精度型、浮点型、日期型和日期时间型,但所有表达式的类型要相同。类型要相同。 ?MAX(“ABC”,”AD”,”ABD”)&显示结果为显示结果为AD ?MIN(34,56,78) &显
32、示结果为显示结果为34 求随机数函数求随机数函数 8.求随机数函数求随机数函数 格式:格式:RAND() 功能:返回一个功能:返回一个0到到1之间的随机数。之间的随机数。 用来指定返回的数值序列的种子数值。用来指定返回的数值序列的种子数值。 ?RAND()&显示结果为显示结果为0.11 ?RAND(-11)&显示结果为显示结果为0.53 求求:最大值和最小值为指定范围中的最大值、最小值最大值和最小值为指定范围中的最大值、最小值 Int(最大值最大值-最小值最小值+1)*Rand()+最小值最小值) 例例:求求10-99之间的随即数之间的随即数 ?INT(99-10+1)*RAN
33、D()+10) 求字符串长度函数求字符串长度函数 1求字符串长度函数求字符串长度函数 格式:格式:LEN() X=”ABCD” ?LEN(x) &显示结果为显示结果为4 ?LEN(“x”) &显示结果为显示结果为1 大小写转换函数大小写转换函数 2.大小写转换函数大小写转换函数 格式:格式:LOWER() UPPER() LOWER(”Visual FoxPro”) &显示结果为显示结果为visaul foxpro UPPER(”Visual FoxPro”)&显示结果为显示结果为VISUAL FOXPRO 空格字符生成函数空格字符生成函数 3.空格字符生成函数
34、空格字符生成函数 格式:格式:SPACE() 功能:返回由功能:返回由指定数目的空格组成的字指定数目的空格组成的字符串。符串。 删除前后空格函数删除前后空格函数 ALITRIM() TRIM()返回指定字符表达式值去掉尾部空格后形成的返回指定字符表达式值去掉尾部空格后形成的字符串。字符串。 LTRIM()返回指定字符表达式值去掉前导空格后形成返回指定字符表达式值去掉前导空格后形成的字符串。的字符串。 ALLTRIM()返回指定表达式去掉前导和尾部空格后形返回指定表达式去掉前导和尾部空格后形成的字符串。成的字符串。 取子字符串函数取子字符串函数SUBSTR(,,)功能:在功能:在中从中从截取若干
35、个字符。截取若干个字符。若若省略或省略或的值大于从起始位置到结的值大于从起始位置到结束的所有字符个数,则取从起始位置起到字符串结束的所束的所有字符个数,则取从起始位置起到字符串结束的所有字符作为函数值。有字符作为函数值。例例14:?:?SUBSTR(中国合肥中国合肥,5,2)?SUBSTR(中国合肥中国合肥,5)?RIGHT(ABCDEF,3)结果:结果:合合合肥合肥DEF 说明:另两个截取子串的函数:说明:另两个截取子串的函数: RIGHT(,) 从右边取若干个字符。从右边取若干个字符。 LEFT(,)从左边取若干个字符。从左边取若干个字符。 求子串位置函数求子串位置函数 7求子串位置函数求
36、子串位置函数 格式:格式:AT(,)ATC(,) 功能功能:AT()的函数值为数值型。如果的函数值为数值型。如果是是的子串的子串,则返回则返回的首字符在字符表的首字符在字符表达式达式2值中的位置值中的位置,:若不是子串若不是子串,则返回则返回0。 ATC()与与AT()功能类似功能类似,但在子串比较时不区分字母大小写。但在子串比较时不区分字母大小写。 第三个自变量数值表达式用于表明要在字符表达式第三个自变量数值表达式用于表明要在字符表达式2值中搜索字符表达式值中搜索字符表达式l值第几次出现,其默认值是值第几次出现,其默认值是1。 ?at(“a”,”abca”) 3常用日期和时间函数常用日期和时
37、间函数名 称格 式类型功 能系统时间TIME()C返回当前的系统时间SECOND()N返回当前的系统时间秒系统日期DATE()(SET DATE TO YMD)D返回当前的系统日期改变日期显示顺序日期时间DATETIME()T返回当前的系统日期和时间年函数YEAR()N从表达式中求出年份数值月函数MONTH()N从表达式中求出月份数值文字月CMONTH()C从表达式中求出月份名日函数DAY()N从表达式中求出日份数值星期函数DOW()N从表达式中求出星期数值文字星期CDOW()C从表达式中求出星期名时函数HOUR()N从表达式中求出小时数值分函数MINUTE()N从表达式中求出分数值秒函数SE
38、C()N从表达式中求出秒数值 系统日期和时间函数 格式:DATE() TIME() DATETIME() 求年份、月份和天数函数 格式:YEAR(|) MONTH(日期表达式|) DAY(| 时、分和秒函数 格式:HOUR() MINUTE () SEC () 日期和时间函数日期和时间函数日期和时间函数的自变量一般是日期型数据或日期时间型数据日期和时间函数的自变量一般是日期型数据或日期时间型数据 4数据类型转换函数数据类型转换函数名 称 与 格 式类型功 能ASC()N将字符串首字符转换成对应ASCII码值CHR()C将ASCII码值转换成对应字符STR(,)C将数值型数据转换成字符型数据,
39、长度和小数值分别指出结果字符串的长度和小数位数VAL()N将字符型数据转换成数值型数据CTOD()CTOT()DT将字符型数据转换成日期型数据将字符型数据转换成日期时间型数据DTOC(,1)DTOS()C将日期型数据转换成字符型数据,若选参数1,则输出格式为年月日:yyyymmdd 8位字符将日期型数据转换成字符型数据,输出格式为:yyyymmdd8位字符 类型转换函数举例 字符与数值相互转换字符与数值相互转换(1)数值转换为字符串数值转换为字符串 STR(, ) 小数点和正负号各计算一位计入总长度中,若小数点和正负号各计算一位计入总长度中,若小于小于值的整数位数,则返回由值的整数位数,则返回
40、由“*”组成的组成的字符串。若省略字符串。若省略,则认为小数位为,则认为小数位为0;若同时;若同时省略省略 ,则整数位数默认为,则整数位数默认为10。功能:将功能:将 的值转换为字符串,的值转换为字符串,实现数值型到字符型的转换。实现数值型到字符型的转换。 决定转换结果的字符串总长度,决定转换结果的字符串总长度, 指定转换结果小数部分的数字字符个数。指定转换结果小数部分的数字字符个数。 (2)字符串转换成数值)字符串转换成数值格式:格式:VAL()功能:将由数值组成的字串转换为数值。功能:将由数值组成的字串转换为数值。注意:转换从最左非空字符开始,一直到非数字符为止。注意:转换从最左非空字符开
41、始,一直到非数字符为止。如果第一个字符就为非数字自负,则函数值返回如果第一个字符就为非数字自负,则函数值返回0。 例例22:?:?VAL(234.56)+12.34 S=56DEF ?VAL(S)*2 ?VAL(A3) 宏替换函数宏替换函数 格式:格式:&. 功能:替换出字符型变量的内容功能:替换出字符型变量的内容,即即&的值是变量中的的值是变量中的字符串。如果该函数与其后的字符无明确分界,则要字符串。如果该函数与其后的字符无明确分界,则要用用作函数结束标识。宏替换可以嵌套使用。作函数结束标识。宏替换可以嵌套使用。 例例 a1=”Fox” 宏替换函数宏替换函数 ?”Visual
42、 &a1.Pro”&显示结果为显示结果为Visual FoxProb1=”2002”b2=2002?&b1+b2&显示结果显示结果为为4004 5测试函数测试函数 在数据处理过程中,有时用户需要了解操作对象在数据处理过程中,有时用户需要了解操作对象的状态。例如,要使用的文件是否存在、数据库的当的状态。例如,要使用的文件是否存在、数据库的当前记录号、是否到达了文件尾、检索是否成功、某工前记录号、是否到达了文件尾、检索是否成功、某工作区中记录指针所指的当前记录是否有删除标记、数作区中记录指针所指的当前记录是否有删除标记、数据类型等。尤其是在运行应用程序时,常常需要根
43、据据类型等。尤其是在运行应用程序时,常常需要根据测试结果来决定下一步或程序走向。常用字符函数的测试结果来决定下一步或程序走向。常用字符函数的有:有: 值域测试函数值域测试函数 格式:格式:BETWEEN(,) 功能:判断一个表达式的值是否介于另外两个表达式功能:判断一个表达式的值是否介于另外两个表达式的值之间。的值之间。 当表达式当表达式1值大于等于表达式值大于等于表达式2且小于等于且小于等于表达式表达式3时时,函数值为逻辑真(函数值为逻辑真(.T.),否则函数值否则函数值为逻辑假为逻辑假(.F.)。 值域测试函数值域测试函数 该函数的自变量类型既可以是数值型,也可以是字符该函数的自变量类型既
44、可以是数值型,也可以是字符型、日期型、日期时间型、浮点型、整型、双精度型型、日期型、日期时间型、浮点型、整型、双精度型或货币型,但三个自变量的数据类型要一致。或货币型,但三个自变量的数据类型要一致。 ?BETWWEN(20,10,100) &显示结果为显示结果为.T. 空值测试函数空值测试函数 格式:格式:EMPTY(表达式表达式) 功能:根据指定表达式的运算结果是否为功能:根据指定表达式的运算结果是否为空空值,返值,返回逻辑真回逻辑真(.T.)或逻辑假或逻辑假(.F.)。首先要注意。首先要注意,这里所指的这里所指的空空值与值与NULL值是两个不同的概念。函数值是两个不同的概念。函数E
45、MPTY(.NULL.)的返回值为逻辑假的返回值为逻辑假(.F.)。其次。其次,该函数该函数自变量表达式的类型除了可以是数值型之外自变量表达式的类型除了可以是数值型之外,还可以是还可以是字符型、逻辑型、日期型等类型。不同类型数据的字符型、逻辑型、日期型等类型。不同类型数据的空空值值,有不同的规定有不同的规定 表达式类型测试函数表达式类型测试函数 格式:格式:TYPE(“”) 功能:返回指定字段或表达式的类型。测试表达式功能:返回指定字段或表达式的类型。测试表达式的类型的类型,返回一个大写字母返回一个大写字母,函数值为字符型。函数值为字符型。 表达式类型测试函数表达式类型测试函数 例例 A1=”
46、65”?TYPE(A1)&显示结果为显示结果为N?TYPE(“A1”)&显示结果为显示结果为C 表文件尾测试函数表文件尾测试函数 格式:格式:EOF(工作区号工作区号|表别名表别名) USE STD_DA&打开数据表打开数据表STD_DA GO BOTTOM&指针移到最后一条指针移到最后一条记录记录 ?EOF()&显示结果为显示结果为.F. SKIP&指针向下移动一个指针向下移动一个 ?EOF()&显示结果为显示结果为.T. 表文件首测试函数表文件首测试函数 格式:格式:BOF(|) 功能:测试当前表文件功能:测试当前表文件(若缺省自变量
47、若缺省自变量)或指定表文件中或指定表文件中的记录指针是否指向文件首,若是首返回逻辑真的记录指针是否指向文件首,若是首返回逻辑真.T.,否则返回逻辑假否则返回逻辑假.F.。表文件首是指第一条记录的前面。表文件首是指第一条记录的前面位置,若指定工作区上没有打开表文件,函数返回逻位置,若指定工作区上没有打开表文件,函数返回逻辑假辑假.F.。若表文件中不包含任何记录,函数返回逻辑。若表文件中不包含任何记录,函数返回逻辑真真T.。 记录号测试函数记录号测试函数 格式:格式:RECNO(|表别名表别名) 功能:返回当前表文件功能:返回当前表文件(若缺省自变量若缺省自变量)或指定表文件中或指定表文件中当前记
48、录当前记录(记录指针所指记录记录指针所指记录)的记录号。如果指定工作的记录号。如果指定工作区上没有打开表文件,函数值为区上没有打开表文件,函数值为0。如果记录指针指向。如果记录指针指向文件尾,数值为表文件中的记录数加文件尾,数值为表文件中的记录数加1。如果记录指针。如果记录指针指向文件首,函数值为表文件中第一条记录的记录号。指向文件首,函数值为表文件中第一条记录的记录号。 记录个数测试函数记录个数测试函数 格式:格式:RECCOUNT(工作区号工作区号|) 功能:返回当前表文件功能:返回当前表文件(若缺省自变量若缺省自变量)或指定表文件中或指定表文件中的记录个数。如果指定工作区上没有打开表文件
49、,函的记录个数。如果指定工作区上没有打开表文件,函数值为数值为0。 USESTD_CJ&假定表中有假定表中有10条记录条记录. ?BOF(),RECNO()&显示显示.F. 1 SKIP -1 ?BOF(),RECNO()&显示显示.T.1 GO BOTTOM ?EOF(),RECNO()&显示显示.F.10 SKIP ?EOF(),RECNO(),RECCOUNT() &显示显示.T.11 10 条件判断函数条件判断函数格式:格式:IIF(条件表达式条件表达式,表达式表达式1,表达式表达式2) 条件表达式为真,返回表达式条件表达式为真,返回表达式1的值
50、;条件表达式为假,返的值;条件表达式为假,返回表达式回表达式2的值。的值。 如:如:CJ=80 ?IIF(CJ=60,”通过通过”,”不通过不通过”)&显示结果为:通显示结果为:通过过 X=100 Y=300 ?IIF(X100,X-50,X+50) &显示结果为显示结果为150 ?IIF(Y100,Y-50,Y+50)&显示结果为显示结果为 250 Visual FoxPro的命令格式的命令格式 281Visual FoxPro的命令格式的命令格式 命令的一般格式为:命令的一般格式为: 命令动词命令动词范围范围FOR条件条件WHILE条件条件表达式表表达式表FIELDS字段名表字段名表 范围范围短语用来确定执行该命令时涉及哪些记录,一般有四短语用来确定执行该命令时涉及哪些记录,一般有四种选择:种选择:ALL&显示全部记录显示全部记录RECORD &显示第显示第n条记录条记录NEXT &显示包括当前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赔偿安葬协议书
- 机动车转让过户协议书
- 稻田调解协议书
- 苏州电子协议书
- 股份变卖协议书
- 芯片合资协议书
- 美团电子协议书
- 开发商房屋拆迁协议书
- 男方抚养协议书
- 药店清场协议书
- 2025年农村个人果园承包合同
- 湖北省武汉市2025届高三年级五月模拟训练试题数学试题及答案(武汉五调)
- 医师挂证免责协议书
- 济南民政离婚协议书
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- GB/T 34560.1-2017结构钢第1部分:热轧产品一般交货技术条件
- GB/T 29318-2012电动汽车非车载充电机电能计量
- VSTi音源插件列表
- 安全文明施工措施费清单五篇
- 医院感染暴发报告处理流程图
- 中等职业学校学生实习鉴定表
评论
0/150
提交评论