第2章VFP程序设计基础函数部分_第1页
第2章VFP程序设计基础函数部分_第2页
第2章VFP程序设计基础函数部分_第3页
第2章VFP程序设计基础函数部分_第4页
第2章VFP程序设计基础函数部分_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 2章章 Visual FoxPro 程序设计基础程序设计基础 本章重点:本章重点: 1、掌握不同类型数据的正确表达形式。、掌握不同类型数据的正确表达形式。 2、掌握运算符的运算规则、优先级、结合性、掌握运算符的运算规则、优先级、结合性; 3、掌握程序设计的三种基本结构,会编写简单、掌握程序设计的三种基本结构,会编写简单的程序。的程序。第第 2章章 Visual FoxPro 程序设计基础程序设计基础 2.1 常量与变量常量与变量 2.2 表达式表达式 2.3 常用函数常用函数 2.4 程序与程序文件程序与程序文件 2.5 程序的基本结构程序的基本结构 2.6 多模块程序设计多模块程序设计

2、2.1 常量与变量常量与变量 2.1.1 数据类型数据类型 1.定义定义 指数据对象取值和运算的集合指数据对象取值和运算的集合; 数据类型一旦被定义,就确定了其存储方式和数据类型一旦被定义,就确定了其存储方式和使用方式使用方式; 2.类型类型 数值型和非数值型数值型和非数值型 3.数据基本类型数据基本类型 表创建时必须指明数据类型,不能改变;表创建时必须指明数据类型,不能改变; 变量和数组由存入其中的值决定;变量和数组由存入其中的值决定; 一、一、 字符型字符型(C:Character) 不具有计算能力的文字数据类型。不具有计算能力的文字数据类型。 由任意字符组成:由任意字符组成: 如汉字和如

3、汉字和ASCII字符集中可打印字符字符集中可打印字符(字母字符、数字字母字符、数字字符、空格、符号等字符、空格、符号等)组成,长度范围是组成,长度范围是0254个字个字符符 必须用定界符双引号必须用定界符双引号(“”)或单引号或单引号( )、 括起括起来。来。 注意注意: 必须用西文方式的单或双引号括起。必须用西文方式的单或双引号括起。 学号、工号、电话号码、邮政编码学号、工号、电话号码、邮政编码(看上去象数值型看上去象数值型)一般用字符型表示。一般用字符型表示。 二、二、 数值型数值型(N:Numeric) 数值型用来表示数量数值型用来表示数量. 分为以下四种类型:分为以下四种类型: (1)

4、基本数值型(基本数值型(Numeric) 由数字(由数字(09)、小数点和正负号组成。最大长度为)、小数点和正负号组成。最大长度为20位(包括位(包括、和小数点)。、和小数点)。 指数形式:例如:指数形式:例如: 123400000可以表示为:可以表示为:1.234E+8, 0.0002356可以表示为:可以表示为:2.356E-4 (2)浮点型浮点型* (F:Float) 与数值型数据完全等价与数值型数据完全等价,只是在存储形式上采取浮点格式。只是在存储形式上采取浮点格式。 (3)双精度型双精度型* (B:Double) 是更高精度的数值型数据,位数固定。只用于数据表中的字段数是更高精度的数

5、值型数据,位数固定。只用于数据表中的字段数据类型的定义,并采用固定长度浮点格式存储。据类型的定义,并采用固定长度浮点格式存储。 (4)整型整型* (I:Integer) 是不包含小数点部分的数值型数据。它只用于数据表中的字段类是不包含小数点部分的数值型数据。它只用于数据表中的字段类型的定义。整型数据以二进制形式存储,大小占型的定义。整型数据以二进制形式存储,大小占4个字节。个字节。 三、货币型三、货币型(Y:Currency) 描述货币数据(小数位数超过描述货币数据(小数位数超过4位四舍五入)位四舍五入) cPrice=$100.356 四、日期型四、日期型(Date) 用于表示有关日期的数据

6、:用于表示有关日期的数据: birthday=1968/05/20 日期型数据以日期型数据以yyyymmdd样式保存样式保存,8字节字节 (1)严格的日期格式)严格的日期格式 格式:格式:yyyy/mm/dd 注:花括号内第一字符必须是脱字符注:花括号内第一字符必须是脱字符“”; 年份必须使用年份必须使用4位;位; 年月日顺序不能颠倒。年月日顺序不能颠倒。 例:例:2009-09-15 (2)传统日期格式)传统日期格式 只能在只能在set strictdate to 0状态下使用。状态下使用。 系统默认美国日期格式系统默认美国日期格式mm/dd/yy年份可以是年份可以是2位也位也可以是可以是4

7、位。年月日的次序可以任意。受系统设置影位。年月日的次序可以任意。受系统设置影响,在不同状态下,对日期的解释不同。响,在不同状态下,对日期的解释不同。 例:例: 04/02/09 可以解释为可以解释为2009年年4月月2日日 也可以解释为也可以解释为2004年年2月月9日日 还可以解释为还可以解释为2009年年2月月4日日 (3)影响日期格式的设置命令)影响日期格式的设置命令 set mark to 日期分隔符日期分隔符 指定日期的显示分隔符如指定日期的显示分隔符如“-”、“.”。 注:若省略注:若省略日期分隔符日期分隔符,则用恢复系统默认值,则用恢复系统默认值“/”。 set date to

8、MDY|DMY|YMD 设置日期显示的格式。可用的日期格式如下:设置日期显示的格式。可用的日期格式如下:短语短语格式格式短语短语格式格式AMERICANmm/dd/yyANSIyy.mm.ddFRENCHdd/mm/yyGERMANdd.mm.yyITALIANdd-mm-yyJANPANyy/mm/ddUSAmm-dd-yy MDYmm/dd/yy DMYdd/mm/yy YMDyy/mm/dd 五、五、 日期时间型日期时间型(DateTime) 表述日期表述日期时间或二者兼而有之的数据时间或二者兼而有之的数据 tdatetime=3/11/ 2005 10:30pm Tdateonly=3

9、/11/2005 Ttimeonly=10:30 am 日期时间型数据占日期时间型数据占8字节,字节,4个字节表示日期,个字节表示日期,另另4个字节表示时间个字节表示时间 日期时间型数据的缺省默认值日期时间型数据的缺省默认值: ?ctot(“03/05/2008”)、?ctot(2:40 am) 时间格式受时间格式受SET HOURS、SET SECONDS等命令的等命令的影响影响 六、六、 逻辑型逻辑型(Logical) 是描述客观事物真假的数据,用于表示逻辑判是描述客观事物真假的数据,用于表示逻辑判断结果。断结果。 只有真(只有真(.T.)和假()和假(.F.)两种值,长度固定为)两种值,

10、长度固定为1位字节。位字节。 如:是否必修课?如:是否必修课? 七、七、 备注型备注型*(Memo) 用于在表字段中存放较长的字符型数据类型。用于在表字段中存放较长的字符型数据类型。是字符型数据的特殊形式。是字符型数据的特殊形式。 没有数据长度限制,仅受限于现有的磁盘空间。没有数据长度限制,仅受限于现有的磁盘空间。 其字段长度固定为其字段长度固定为4位,用于存放引用信息,指位,用于存放引用信息,指向该字段的真正内容。向该字段的真正内容。 实际数据被存放在与数据表文件同名的备注文实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。件中,长度根据数据的内容而定。 八、八、 通用型

11、通用型*(General) 用于在表中存储用于在表中存储OLE(对象链接与嵌入对象链接与嵌入)对象对象 OLE对象可以是电子表格、文档、图片等。对象可以是电子表格、文档、图片等。 只用于数据表中的字段类型的定义。只用于数据表中的字段类型的定义。 OLE对象的实际内容、类型和数据量则取决于连接或对象的实际内容、类型和数据量则取决于连接或嵌入嵌入OLE对象的操作方式。对象的操作方式。 连接连接OLE对象方式,数据表中只包含对对象方式,数据表中只包含对OLE对象的引用说明,对象的引用说明,以及对创建该以及对创建该OLE对象的应用程序的引用说明;对象的应用程序的引用说明; 嵌入嵌入OLE对象方式,数据

12、表中除包含对创建该对象方式,数据表中除包含对创建该OLE对象的应用对象的应用程序的引用说明,还包含程序的引用说明,还包含OLE对象中的实际数据。对象中的实际数据。 长度固定为长度固定为4位,用于存放引用信息,指向该字段的真位,用于存放引用信息,指向该字段的真正内容。正内容。 实际数据长度仅受限于现有的磁盘空间。实际数据长度仅受限于现有的磁盘空间。 2.2.1 存储容器名称命名规则存储容器名称命名规则 2.2.2 常量(常量(Constants) 2.2.3 内存变量(内存变量(Variables) 2.2.4 数组(数组(Arrays) 2.2.5 字段(字段(Fields) 2.2.6 对象

13、(对象(Objects)2.2 常量和变量常量和变量 VFP允许使用常量、变量、数组、字段和对象来允许使用常量、变量、数组、字段和对象来存储数据,它们也被称为存储数据的容器存储数据,它们也被称为存储数据的容器 1.名称中只能包含字母、下划线、数字符号和汉字符号名称中只能包含字母、下划线、数字符号和汉字符号 2.名称的开头只能是字母、汉字、下划线,不能是数字名称的开头只能是字母、汉字、下划线,不能是数字符号符号 注意:尽可能避免下划线作为名称开头注意:尽可能避免下划线作为名称开头 表的字段名不能用下划线开头表的字段名不能用下划线开头 3.名称的长度可以是名称的长度可以是1-128个字符长度个字符

14、长度 注意:自由表字段名、索引标识名只能为注意:自由表字段名、索引标识名只能为10个字符个字符 4.应避免使用系统保留字应避免使用系统保留字2.1.2存储容器名称命名规则存储容器名称命名规则 1. 数值型:数值型: 由小数点、数字、正负号组成由小数点、数字、正负号组成 长度长度nVar 6.内存变量的保存与恢复(内存变量的保存与恢复(.mem) Save to filenameall like 通配符通配符|all except 通通配符配符 Save to mVar all like ?yan* & Restore from filename additive 7、内存变量的显示、内

15、存变量的显示 格式格式1:list memory like to printer|to file 格式格式2:display memory like to printer|to file 注:注: 1)功能:显示内存变量的当前信息:变量名、作用域、类功能:显示内存变量的当前信息:变量名、作用域、类型、取值。型、取值。 2)List:连屏显示,如超过一屏,则只看到最后一屏的内容;连屏显示,如超过一屏,则只看到最后一屏的内容; display:分屏显示。:分屏显示。 2)like:只显示与通配符相匹配的内:只显示与通配符相匹配的内 存变量。存变量。 8、内存变量的清除、内存变量的清除 格式格式1:

16、clear memory:清除所有内存变量:清除所有内存变量 格式格式2:release :清除指定:清除指定 的内存变量。的内存变量。 格式格式3:release all like|except:清除与通配符匹配的内存变量。清除与通配符匹配的内存变量。 格式格式4:release all extended:清除所有的内清除所有的内 存变量。存变量。 例:例: 在命令窗口中输入:在命令窗口中输入: x1=123 x2=“abc” x3=2006/02/25 Disp memory like x? 则:在主屏幕中显示结果为:则:在主屏幕中显示结果为: x1 pub n 123 x2 pub c

17、“abc” x3 pub d 25/02/20062.1.5 数组数组 1. 定义定义 数组由一系列被称为元素的有序数据值系列构成,可以数组由一系列被称为元素的有序数据值系列构成,可以用序号引用这些元素。用序号引用这些元素。 数组属于内存变量数组属于内存变量 数组有一维数组和二维数组数组有一维数组和二维数组 2. 数组的声明数组的声明(数组的定义数组的定义) 数组使用前应预先声明:即数组的定义数组使用前应预先声明:即数组的定义 DECLARE X(5), Y(5,5) 私有数组私有数组 DIMENSION A(10),B(10,10) 私有数组私有数组 PUBLIC X(3,4) 全局数组全局

18、数组 LOCAL M(9) 局部数组局部数组 数组在声明之后,每个元素被默认地赋予数组在声明之后,每个元素被默认地赋予.F.值值 3. 数组元素赋值数组元素赋值 例例: Dimension arrayname6,3 Arrayname1,2=1113 可以用一个语句为所有元素赋相同的值可以用一个语句为所有元素赋相同的值 Arrayname=1113 STORE 10 TO A,B(2),M(4) 与数组相关的命令与数组相关的命令(可在数组元素与字段之间移可在数组元素与字段之间移动值动值) SCATTER、GATHER、 COPY TO ARRAY、 APPEND FROM ARRAY 4、表与

19、数组之间的数据传递、表与数组之间的数据传递 SCATTER FIELDS 字段名表字段名表 MEMOTO数组名数组名 BLANK GATHER from数组名数组名 FIELDS 字段名表字段名表 MEMO2.3 函数函数 2.3.1 概述概述 函数:函数: 是预先编制好的计算模块(程序代码)是预先编制好的计算模块(程序代码),可供可供VFP程程序或用户在任何地方调用;序或用户在任何地方调用; 函数接收一个或多个参数而返回单个值,它可函数接收一个或多个参数而返回单个值,它可嵌入到一个表达式中;嵌入到一个表达式中; 函数格式为:函数名(参数)函数格式为:函数名(参数) 如如:date() bof

20、() eof() 参数是供函数或过程操作的一个值参数是供函数或过程操作的一个值 如如:space(10) 中的中的“10”即为参数即为参数. 函数分系统函数和用户自定义函数函数分系统函数和用户自定义函数 2.3.2 系统函数的分类系统函数的分类(P46表表2-5) 数据类函数数据类函数 数据库类函数数据库类函数 环境类函数环境类函数 输入输出类函数输入输出类函数 程序设计类函数程序设计类函数 函数:函数: 是是vfp语言的重要组成部分语言的重要组成部分 一个大的一个大的Vfp应用程序往往是由若干个过程(子程序)应用程序往往是由若干个过程(子程序)和函数组合而成的和函数组合而成的 函数将最常用的

21、某些程序功能所对应的命令代码集函数将最常用的某些程序功能所对应的命令代码集中起来形成文件,供应用程序随时调用中起来形成文件,供应用程序随时调用 如何正确使用函数?如何正确使用函数? 熟记各函数的名称、功能作用熟记各函数的名称、功能作用 熟练掌握其语法结构、参数含义熟练掌握其语法结构、参数含义 掌握各函数的返回值内容掌握各函数的返回值内容2.3.2.1 2.3.2.1 数值函数数值函数 定义定义是指函数值为数值的一类函数,它们的自变量和返回值是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。往往都是数值型数据。 1.1.绝对值函数绝对值函数格式:格式:ABS(ABS(数值表达式

22、数值表达式) )功能:返回指定的数值表达式的绝对值。功能:返回指定的数值表达式的绝对值。例例 ? ABS(10),ABS(-5)? ABS(10),ABS(-5)2.3.2.1 2.3.2.1 数值函数数值函数 2.2.求平方根函数求平方根函数格式:格式:SQRT(SQRT(数值表达式数值表达式) )功能:返回指定表达式的平方根。自变量表达式的值不功能:返回指定表达式的平方根。自变量表达式的值不能为负。能为负。例例 ? SQRT(4)? SQRT(4) 3.3.圆周率函数圆周率函数格式:格式:PI()PI()功能:返回圆周率功能:返回圆周率(数值型数值型) )。该函数没有自变量。该函数没有自变

23、量。SET DECIMALS TO SET DECIMALS TO nDecimalPlacesnDecimalPlaces set deci to 42.3.2.1 2.3.2.1 数值函数数值函数 4.4.求整数函数求整数函数格式:格式: INT(INT(数值表达式数值表达式) ) CEILING(CEILING(数值表达式数值表达式) ) FLOOR(FLOOR(数值表达式数值表达式) )功能:功能: INT()INT()返回指定数值表达式的整数部分。返回指定数值表达式的整数部分。 CEILING()CEILING()返回大于或等于指定数值表达式的最小整数。返回大于或等于指定数值表达式的

24、最小整数。 FLOOR()FLOOR()返回小于或等于指定数值表达式的最大整数。返回小于或等于指定数值表达式的最大整数。例例 X=5.8X=5.8 ? INT(X)? INT(X);INT(-X)INT(-X);CEILING(X)CEILING(X);CEILING(-X)CEILING(-X);FLOOR(X)FLOOR(X);FLOOR(-X) FLOOR(-X) 2.3.2.1 2.3.2.1 数值函数数值函数 5.5.四舍五入函数四舍五入函数格式:格式: ROUND(ROUND(数值表达式数值表达式1 1,数值表达式数值表达式2 2) )功能:功能: 返回指定表达式在指定位置四舍五入

25、后的结果。返回指定表达式在指定位置四舍五入后的结果。说明:说明: 数值表达式数值表达式2 2指明四舍五入的位置。若指明四舍五入的位置。若数值表达式数值表达式2 2大大于等于于等于0 0,那么它表示的是要保留的小数位数:若,那么它表示的是要保留的小数位数:若数值表达式数值表达式2 2小于小于0 0,那么它表示的是整数部分的舍入位数。,那么它表示的是整数部分的舍入位数。例例 X=645.345X=645.345 ? ROUND(X,2) ROUND(X,1),ROUND(X,0),ROUND(X,-1) ? ROUND(X,2) ROUND(X,1),ROUND(X,0),ROUND(X,-1)

26、2.3.2.1 2.3.2.1 数值函数数值函数 6.6.求余数函数求余数函数* * * * * * 模模格式:格式: MOD(MOD(数值表达式数值表达式1 1,数值表达式数值表达式) )功能:功能: 返回两个数值相除后的余数。返回两个数值相除后的余数。说明:说明: 数值表达式数值表达式1 1是被除数,是被除数,数值表达式数值表达式2 2是除数。是除数。 余数的正负号与除数相同余数的正负号与除数相同。 如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数同号,那么函数值即为两数相除的余数; 如果被除数与除数异号,则函数值为两数相除的余数再加上除如果被除数与除数异号,则函数值为

27、两数相除的余数再加上除数的值。数的值。例例 ? MOD(10? MOD(10,3)3),MOD(10MOD(10,-3)-3),MOD(-10MOD(-10,3)3),MOD(-10MOD(-10,-3)-3)2.3.2.1 2.3.2.1 数值函数数值函数 7.求最大值和最小值函数求最大值和最小值函数 格式:格式: MAX(数值表达式数值表达式1,数值表达式数值表达式2,数值表达式数值表达式3 MIN(数值表达式数值表达式1,数值表达式数值表达式2,数值表达式数值表达式3 功能:功能: MAX()计算各自变量表达式的值,并返回其中的最大值。计算各自变量表达式的值,并返回其中的最大值。 MIN

28、()计算各自变量表达式的值,并返回其中的最小值。计算各自变量表达式的值,并返回其中的最小值。 说明:说明: 自变量表达式的类型可以是数值型、字符型、货币型、双精度型、自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和浮点型、日期型和 日期时间型,但所有表达式的类型必须相同。日期时间型,但所有表达式的类型必须相同。 例例 ? MAX(8,100),MAX(8,100),MIN(工作工作,学习学习,休休息息) 2.3.2.1 数值函数数值函数 8.随机数函数随机数函数*(参考参考) 格式:格式: RAND() 功能:功能: 返回返回01之间的随机数。之间的随机数。 例例 ?

29、 rand()2.3.2.2 2.3.2.2 字符函数字符函数字符函数是指自变量一般是字符型数据的函数。字符函数是指自变量一般是字符型数据的函数。 1.1.求字符串长度函数求字符串长度函数格式:格式: LEN(LEN(字符表达式字符表达式) )功能:功能: 返回指定字符表达式值的长度,即所包含的字符个数。函数值返回指定字符表达式值的长度,即所包含的字符个数。函数值为数值型。为数值型。例例 X=bookX=book ? LEN(X)? LEN(X)2.3.2.2 2.3.2.2 字符函数字符函数 2.2.小写转换函数小写转换函数格式:格式: LOWER(LOWER(字符表达式字符表达式) )功能

30、:功能: 将指定表达式值中的大写字母转换成小写字母,其将指定表达式值中的大写字母转换成小写字母,其他字符不变。他字符不变。例例 ? LOWER(BOOK),LOWER(abcDeFg20)? LOWER(BOOK),LOWER(abcDeFg20)2.3.2.2 2.3.2.2 字符函数字符函数 3.3.大写转换函数大写转换函数格式:格式: UPPER(UPPER(字符表达式字符表达式) )功能:功能: 将指定表达式值中的小写字母转换成大写字母,其将指定表达式值中的小写字母转换成大写字母,其他字符不变。他字符不变。例例 ? ? UPPER(workUPPER(work),UPPER(abcDe

31、FgUPPER(abcDeFg)2.3.2.2 2.3.2.2 字符函数字符函数 4.空格字符串生成函数空格字符串生成函数 格式:格式: SPACE(数值表达式数值表达式) 功能:功能: 返回由指定数目的空格组成的字符串。返回由指定数目的空格组成的字符串。 5.删除前后空格函数删除前后空格函数 格式:格式: TRIM(字符表达式字符表达式 LTRIM(字符表达式字符表达式) ALLTRIM(字符表达式字符表达式) 功能:功能: TRIM()返回指定字符表达式值去掉尾部空格后形成的字符串。返回指定字符表达式值去掉尾部空格后形成的字符串。 LTRIM()返回指定字符表达式值去掉前导空格后形成的字符

32、串。返回指定字符表达式值去掉前导空格后形成的字符串。 ALLtRIM()返回指定字符表达式值去掉前导和尾部空格后形成的字返回指定字符表达式值去掉前导和尾部空格后形成的字符串。符串。 例例 STORE SPACE(1)+VFP+SPACE(3) TO X ? TRIM(X) +LTRIM(X)+ALLTRIM(X)6.取子串函数取子串函数格式:格式: LEFT(字符表达式字符表达式,长度长度) RIGHT(字符表达式字符表达式,长度长度) SUBSTR(字符表达式字符表达式,起始位置起始位置,长度长度)功能:功能: LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值。从指定表达式值的

33、左端取一个指定长度的子串作为函数值。 RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值。从指定表达式值的右端取一个指定长度的子串作为函数值。 SUBSTR()从指定表达式的值指定起始位置取指定长度的子串作为函数值。从指定表达式的值指定起始位置取指定长度的子串作为函数值。说明:说明: 在在SUBSTR()函数中,若缺省第三个自变量函数中,若缺省第三个自变量长度长度,则函数从指定位置,则函数从指定位置一直取到最后一个字符。一直取到最后一个字符。例:例: STORE GOOD BYE! TO X ? LEFT(X,2),SUBSTR(X,6,2)+SUBSTR(X,6),RIGHT(

34、X,3) 7.计算子串出现次数函数计算子串出现次数函数 格式:格式: OCCURE(字符表达式字符表达式1,字符表达式字符表达式2) 功能:功能: 返回第一个字符串在第二个字符串中出现的次数,函数返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。若第二个字符串不是第一个字符串的子串,值为数值型。若第二个字符串不是第一个字符串的子串,函数值为函数值为0。 例例 STORE abarabcadababcr TO X ?OCCURS(a,X),OCCURS(b,X),OCCURS(c,X),OCCURS(f,X),OCCURS(r,X) 2.3.2.2 2.3.2.2 字符函数字符函数 8

35、.求子串位置函数求子串位置函数 格式:格式: AT(字符表达式字符表达式1,字符表达式字符表达式2,数值表达式数值表达式) ATC(字符表达式字符表达式1,字符表达式字符表达式2,数值表达式数值表达式) 功能:功能: AT()的函数值为数值型。如果的函数值为数值型。如果字符表达式字符表达式1是是字符表达式字符表达式2的子串,则返回的子串,则返回字符表达式字符表达式1值的首字符在值的首字符在字符表达式字符表达式2值值中的位置;若不是子串,则返回中的位置;若不是子串,则返回0。 说明:说明: ATC()与与AT()功能类似,但在子串比较时不区分字母大小写。功能类似,但在子串比较时不区分字母大小写。

36、 第三个自变量第三个自变量数值表达式数值表达式用于表明要在用于表明要在字符表达式字符表达式2值中值中搜索搜索字符表达式字符表达式1值的第几次出现,其默认值是值的第几次出现,其默认值是1。 例例 STORE This is Visual FoxPro TO x ? AT(pro,x),ATC(fox,x),AT(is,x,3),AT(xo,x) 2.3.2.2 2.3.2.2 字符函数字符函数 9.9.子串替换函数子串替换函数 格式:格式:STUFF(STUFF(字符表达式字符表达式1 1,起始位置起始位置,长度长度,字符表达字符表达式式2 2) ) 功能:功能:用用字符表达式字符表达式2 2值

37、替换值替换字符表达式字符表达式1 1中由中由起始位置起始位置和和长度长度指明的一个子串。指明的一个子串。 说明:说明:替换和被替换的字符个数不一定相等。如果替换和被替换的字符个数不一定相等。如果长度长度值是值是0 0,字字符表达式符表达式2 2则插在由则插在由起始位置起始位置指定的字符前面。如果指定的字符前面。如果字符字符表达式表达式2 2值是空串,那么值是空串,那么字符表达式字符表达式1 1中由中由起始位置起始位置和和长度长度指明的子串被删去。指明的子串被删去。 例例STORE GOOD BYE! TO X1STORE GOOD BYE! TO X1STORE MORNING TO X2ST

38、ORE MORNING TO X2? STUFF(X1,6,3,X2),STUFF(X1,1,4,X2) ? STUFF(X1,6,3,X2),STUFF(X1,1,4,X2) 2.3.2.2 2.3.2.2 字符函数字符函数 10.字符串匹配函数字符串匹配函数 格式:格式: LIKE(字符表达式字符表达式1,字符表达式字符表达式2) 功能:功能: 比较两个字符串对应位置上的字符,若所有对应字符都相匹配,则比较两个字符串对应位置上的字符,若所有对应字符都相匹配,则函数返回逻辑真函数返回逻辑真(.T.),否则返回逻辑假,否则返回逻辑假(.F.)。 说明:说明: 字符表达式字符表达式1中可以包含通

39、配符中可以包含通配符*和和?。*可与任何数目的字符相可与任何数目的字符相匹配,匹配,?可以与任何单个字符相匹配。可以与任何单个字符相匹配。 例如:例如: STORE abc TO X STORE abcd TO y ?LIKE(ab*,x),LIKE(ab*,y),LIKE(x,y),LIKE(?b?,x),LIKE(Abc,x) 11.11.字符替换函数字符替换函数格式:格式: CHRTRAN(CHRTRAN(字符表达式字符表达式1 1,字符表达式字符表达式2 2,字符表达式字符表达式3 3) )功能:功能: 当第一个字符串中的一个或多个字符与第二个字符串中的某个字符相当第一个字符串中的一个

40、或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符串中的对应字符匹配时,就用第三个字符串中的对应字符( (相同位置相同位置) )替换第一个字符替换第一个字符串中这些字符。串中这些字符。说明:说明: 如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对应字符,那么第一个字符串中相匹配的各字符将被删除。因而没有对应字符,那么第一个字符串中相匹配的各字符将被删除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多余字符被忽略。该函数的

41、自变量是三个字符表达式。多余字符被忽略。该函数的自变量是三个字符表达式。例如:例如: x1=CHRTRAN(ABACAD,ACD,X12)x1=CHRTRAN(ABACAD,ACD,X12) y1=CHRTRAN(y1=CHRTRAN(计算机计算机ABCABC, 计算机计算机 , 电脑电脑) z1=CHRTRAN(z1=CHRTRAN(大家好大家好!, 大家大家 , 您您) ? x1,y1,z1? x1,y1,z1 XBX1X2 XBX1X2 电脑电脑 ABC ABC 您好您好! ! 23.函数函数LEN(SPACE(3)-SPACE(2)的返回的返回值是值是_(23)_(11春)春) A.1

42、 B.3 C.2 D.5 23.函数函数LEN(DTOC(DATE(),1)的返回值是的返回值是 _(23)_ (10秋秋) A.1 B.4 C.8 D.10 ?mod(5,3), mod(-5,3), mod(5,-3), mod(-5,-3)2.3.2.3 2.3.2.3 日期和时间函数日期和时间函数1.系统日期和时间函数系统日期和时间函数 格式:格式: DATE() TIME() DATETIME() 功能:功能: DATE()返回当前系统日期,函数值为日期型。返回当前系统日期,函数值为日期型。 TIME()以以24小时制、小时制、hh:mm:ss格式返回当前系统时间,格式返回当前系统时

43、间,函数值为字符型。函数值为字符型。 DATETIME()返回当前系统日期时间,函数值为日期时返回当前系统日期时间,函数值为日期时间型。间型。 例如:例如: ? DATE(),TIME(),DATETIME()2.3.2.3 2.3.2.3 日期和时间函数日期和时间函数 2.求年份、月份和天数函数求年份、月份和天数函数 格式:格式: YEAR(日期表达式日期表达式|日期时间表达式日期时间表达式) MONTH(日期表达式日期表达式|日期时间表达式日期时间表达式) DAY(日期表达式日期表达式|日期时间表达式日期时间表达式) 功能:功能: YEAR()从指定的日期表达式或日期时间表达式中返回年份从

44、指定的日期表达式或日期时间表达式中返回年份(如如2003)。 MONTH()从指定的日期表达式或日期时间表达式中返回月份。从指定的日期表达式或日期时间表达式中返回月份。 DAY()从指定的日期表达式或日期时间表达式中返回月里面的天数。从指定的日期表达式或日期时间表达式中返回月里面的天数。 说明:说明: 这三个函数的返回值都为数值型。这三个函数的返回值都为数值型。 例例 STORE 2001-08-25 TO d ? YEAR(d),MONTH(d),DAY(d) 2.3.2.3 2.3.2.3 日期和时间函数日期和时间函数 3.3.时、分和秒函数时、分和秒函数格式:格式: HOUR(HOUR(

45、日期时间表达式日期时间表达式) ) MINUTE(MINUTE(日期时间表达式日期时间表达式) ) SEC(SEC(日期时间表达式日期时间表达式) )功能:功能: HOUR()HOUR()从指定的日期时间表达式中返回小时部分从指定的日期时间表达式中返回小时部分(24(24小时制小时制) )。 MINUTE()MINUTE()从指定的日期时间表达式中返回分种部分。从指定的日期时间表达式中返回分种部分。 SEC()SEC()从指定的日期时间表达式中返回秒数部分。从指定的日期时间表达式中返回秒数部分。说明:说明: 这三个函数的返回值都为数值型。这三个函数的返回值都为数值型。例如:例如: STORE

46、2003-08-25 04:20:40 P TO tSTORE 2003-08-25 04:20:40 P TO t ? ? HOUR(tHOUR(t) ),MINUTE(tMINUTE(t) ),SEC(tSEC(t) ) 4.DOW()函数函数*格式:格式: dowdow( (日期表达式日期表达式/ /日期时间表达式日期时间表达式) )功能:功能: 从指定的日期表达式从指定的日期表达式/ /日期时间表达式返回该日期日期时间表达式返回该日期是一周的第几天是一周的第几天. .说明:说明: 返回值为数值型。返回值为数值型。( (注意值与星期对应关系注意值与星期对应关系) )例例 ? ? dow(

47、datedow(date()()数值函数名数值函数名功能功能说明说明ABS()绝对值绝对值返回返回X的绝对值的绝对值SIGN()符号函数符号函数当当X为正数、负数和为正数、负数和0时返回时返回1、-1、0SQRT()平方根平方根返回返回X的平方根的平方根PI()圆周率圆周率没有自变量,直接返回圆周率没有自变量,直接返回圆周率INT()求整数求整数返回返回X的整数部分的整数部分CEILING()求整数求整数返回大于等于返回大于等于X的最小整数的最小整数FLOOR()求整数求整数返回小于等于返回小于等于X的最大整数的最大整数ROUND(,)四舍五入四舍五入由由Y指定指定X的舍入时小数点后的位数的舍

48、入时小数点后的位数,返回返回X的四舍五入的结果。的四舍五入的结果。MOD(,)求余数求余数返回返回X除以除以Y时的余数时的余数MAX(,.)最大值最大值返回所有自变量中的最大值返回所有自变量中的最大值MIN(,.)最小值最小值返回所有自变量中的最小值返回所有自变量中的最小值函数名函数名功能功能说明说明LEN()字符串长度字符串长度返回返回X的字节数的字节数.字符占字符占1个个,汉字占汉字占2个个LOWER()转换为小写转换为小写返回返回X所有英文字符转换为小写的字符串所有英文字符转换为小写的字符串UPPER()转换为大写转换为大写返回返回X所有英文字符转换为大写的字符串所有英文字符转换为大写的

49、字符串SPACE()空格字符串空格字符串返回返回Y个空格的空格字符串个空格的空格字符串TRIM()压缩尾部空格压缩尾部空格返回去掉返回去掉X尾部空格的字符串尾部空格的字符串LTRIM()压缩前导空格压缩前导空格返回去掉返回去掉X左部空格的字符串左部空格的字符串ALLTRIM()压缩头尾空格压缩头尾空格返回去掉返回去掉X头尾空格的字符串头尾空格的字符串LEFT(,)取左子串取左子串返回返回X从左部开始的从左部开始的Y个字符的字符串个字符的字符串RIGHT(,)取右子串取右子串返回返回X从右部开始的从右部开始的Y个字符的字符串个字符的字符串SUBSTR(,)取子串取子串返回返回X从中间从中间Y1位

50、置开始的位置开始的Y2个字符的字符串个字符的字符串AT(,) 子串位置子串位置返回返回X1在在X2中第中第Y次出现的首字符位置,次出现的首字符位置,区分大小写区分大小写STUFF(,)子串替换子串替换返回用返回用X2替换替换X1中从中从Y1位置开始的位置开始的Y2个字符个字符CHRTRAN(,)字符替换字符替换返回所有返回所有X2在在X1中的内容被中的内容被X3替换后的字符串替换后的字符串LIKE(,)字符串匹配字符串匹配返回返回X2是否和是否和X1对应位置上的内容匹配,对应位置上的内容匹配,X1可以含通配符可以含通配符函数名函数名功能功能说明说明注:注:X1,X2,X3均为字符串表达式,均为

51、字符串表达式,Y1,Y2均为数值表达式均为数值表达式函数名函数名功能功能说明说明DATE()系统日期系统日期返回系统日期返回系统日期TIME()系统时间系统时间返回系统时间返回系统时间DATETIME()系统日期时间系统日期时间返回系统日期时间返回系统日期时间YEAR()年份年份返回返回X中的年份中的年份MONTH()月份月份返回返回X中的月份中的月份DAY()天数天数返回返回X中月份里的天数中月份里的天数HOUR()小时小时返回返回Y中的小时部分(中的小时部分(24小时制)小时制)MINUTE()分钟分钟返回返回Y中的分钟部分中的分钟部分SEC()秒秒返回返回Y中的秒钟部分中的秒钟部分注:注

52、:X为日期型表达式或日期时间型表达式,为日期型表达式或日期时间型表达式,Y为日期时间型表达式为日期时间型表达式2.3.2.4 2.3.2.4 数据类型转换函数数据类型转换函数 是将某一种类型的数据转换成另一种类型的数据。是将某一种类型的数据转换成另一种类型的数据。 1.数值转换成字符串数值转换成字符串 * 格式:格式: STR(数值表达式数值表达式,长度长度,小数位数小数位数) 功能:功能: 将将数值表达式数值表达式的值转换成字符串,转换时根据需要自动进行四的值转换成字符串,转换时根据需要自动进行四舍五入。舍五入。 说明:说明: (1)返回字符串的理想长度返回字符串的理想长度L应该是应该是数值

53、表达式数值表达式值的整数部分位值的整数部分位数加上数加上小数位数小数位数值,再加上值,再加上1位小数点。位小数点。 (2)如果如果长度长度值大于值大于L,则字符串加前导空格以满足规定的,则字符串加前导空格以满足规定的长长度度要求;要求; (3)如果如果长度长度值大于等于值大于等于数值表达式数值表达式值的整数部分位数值的整数部分位数(包包括负号括负号)但又小于但又小于L,则优先满足整数部分而自动调整小数位数;,则优先满足整数部分而自动调整小数位数;2.3.2.4 2.3.2.4 数据类型转换函数数据类型转换函数(4)(4)如果如果长度长度值小于值小于数值表达式数值表达式值的整数部分值的整数部分位

54、数,则返回一串星号位数,则返回一串星号( (* *) )。(5)(5)小数位数小数位数的默认值为的默认值为0 0,长度长度的默认值为的默认值为1010。例例 STORE -834.456 TO XSTORE -834.456 TO X ? X=+STR(X? X=+STR(X,8 8,3)3) X=-834.456X=-834.456 ? STR(X? STR(X,9 9,2)2),STR(XSTR(X,6 6,2)2),(STR(X(STR(X,3)3),STR(XSTR(X,6)6),STR(X) STR(X) 2.3.2.4 2.3.2.4 数据类型转换函数数据类型转换函数 2.2.字符

55、串转换成数值字符串转换成数值格式:格式: VAL(VAL(字符表达式字符表达式) )功能:功能: 将由数字符号将由数字符号( (包括正负号、小数点包括正负号、小数点) )组成的字符型数据转换成组成的字符型数据转换成相应的数值型数据。相应的数值型数据。说明:说明: (1)(1)若字符串内出现非数字字符,那么只转换前面部分;若字符串内出现非数字字符,那么只转换前面部分; (2)(2)若字符串的首字符不是数字符号,则返回数值零若字符串的首字符不是数字符号,则返回数值零,但忽略前,但忽略前导空格。导空格。 例如:例如:STORE -6789TO xSTORE -6789TO xSTORE .23 TO

56、 ySTORE .23 TO ySTORE A42TO zSTORE A42TO z? ? VAL(x),VAL(x+y),VAL(x+z),VAL(z+yVAL(x),VAL(x+y),VAL(x+z),VAL(z+y) ) 2.3.2.4 2.3.2.4 数据类型转换函数数据类型转换函数3.字符串转换成日期或日期时间字符串转换成日期或日期时间格式:格式:CTOD(字符表达式字符表达式)CTOT(字符表达式字符表达式)功能:功能:CTOD()将将字符表达式字符表达式值转换成日期型数据。值转换成日期型数据。CTOT()将将字符表达式字符表达式值转换成日期时间型数据。值转换成日期时间型数据。说明

57、:说明:字符串中的日期部分格式要与字符串中的日期部分格式要与SET DATE TO 命令设置的格式一致。其中的年份可命令设置的格式一致。其中的年份可以用四位,也可以用两位。如果用两位,则世纪由以用四位,也可以用两位。如果用两位,则世纪由SET CENTURY TO 语句指定。语句指定。例如:例如: SET DATE TO YMD SET CENTURY ON &显示日期或日期时间时,用显示日期或日期时间时,用4位数显示年分位数显示年分 SET CENTURY TO 19 ROLLOVER 51 d1=CTOD(20030725) t1=CTOT(20030725+TIME() ? d1

58、,t1,CTOD(500101),CTOD(510101)这里,这里,SET CENTURY TO语句指定:小于语句指定:小于51的两位数年份属于的两位数年份属于21世纪世纪(19+1),而大于等,而大于等于于51的两位数年份属于的两位数年份属于20世纪世纪(19)。2.3.2.4 2.3.2.4 数据类型转换函数数据类型转换函数 4.4.日期或日期时间转换成字符串日期或日期时间转换成字符串格式:格式: DTOC(DTOC(日期表达式日期表达式| |日期时间表达式日期时间表达式,1 1) ) TTOC(TTOC(日期时间表达式日期时间表达式,1 1) )功能:功能: DTOC()DTOC()将

59、日期型数据或日期时间数据的日期部分转换成字符串将日期型数据或日期时间数据的日期部分转换成字符串 TTOC()TTOC()将日期时间数据转换成字符串。将日期时间数据转换成字符串。说明:说明: (1)(1)字符串中日期部分的格式与字符串中日期部分的格式与SET DATE TOSET DATE TO语句的设置和语句的设置和SET SET CENTURY ON|OFF(ON CENTURY ON|OFF(ON 为四位年份,为四位年份,OFFOFF为两位数年份为两位数年份) )语句的设语句的设置有关。置有关。 (2)(2)时间部分的格式与时间部分的格式与SET HOURS TO 12|24SET HOU

60、RS TO 12|24语句的设置有关。语句的设置有关。 (3)DTOC()(3)DTOC()函数,如果使用选项函数,如果使用选项1 1,则字符串的格式总是,则字符串的格式总是YYYYMMDDYYYYMMDD,共,共8 8个字符。对个字符。对TTOC()TTOC()来说,如果使用选项来说,如果使用选项1 1,则字,则字符串的格式总是为符串的格式总是为YYYYMMDDHHMMSSYYYYMMDDHHMMSS,采用,采用2424小时制,共小时制,共1414个字个字符符. .例如:例如: STORE DATETIME() TO tSTORE DATETIME() TO t ? t? t 0808252503 10:5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论