VF常用函数

  • 格式:doc
  • 大小:76.50 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用函数

函数是系统为实现一些特定功能而设置的内部程序,作为系统的一部分供用户使用.Visual Foxpro 提供了500多个函数,功能比较强大,为程序设计和软件开发提供了许多方便.

函数的基本形式为: 函数名([<操作数表达式>])

函数的操作有三种情况:有一部分函数的操作数由系统规定,用户不必输入,此时函数无操作数,其形式为: 函数名(); 有一部分函数的操作数必须由用户输入;还有一部分函数的操作数可以由用户来指定,如用户不指定,系统就按有关规定给出.对于后两种情况,输入的操作数就相当于一般函数的自变量. Visual Foxpro对每个函数自变量的个数、类型以及函数值的类型都有明确的规定,在使用函数时必须遵循这些规定.学习函数必须掌握它输入输出的数据类型.按Visual Foxpro函数的功能和用途,可将函数分为11大类型:数值和数学函数、字符型函数、日期时间函数、转换函数、测试函数、数据库和表函数、数组函数、对象特性函数、SQL查询函数、菜单和窗口函数、其它函数。我们只介绍部分最常用函数。

一、数值和数学函数

该类函数的输入均为数值型。输出除了其中的确定函数为逻辑型外,其它为数值型。(一)一般数值函数

(1)取整函数

格式:INT(<数值表达式>)

该函数返回<数值表达式>的整数部分(舍尾).

(2)向上取整函数

格式:CEILING(<数值表达式>)

该函数返回不小于<数值表达式>的最小整数。

(3)向下取整函数

格式:FLOOR(<数值表达式>)

该函数返回不大于<数值表达式>的最大整数。

例:?INT(3.14),INT(-3.14),CEILING(3.14),CEILING(-3.14),FLOOR(3.14),FLOOR(-3.14)

3 -3

4 -3 3 -4

(4)四舍五入函数

格式:ROUND(<数值表达式1>,<数值表达式2>)

该函数要求保留小数位。其具体操作是:根据<数值表达式2>指定的位数,对<数值表达式1>进行四舍五入操作,最后保留相应的小数位数。若<数值表达式2>指定的位数为负数,则表示对整数部分舍至第几位,得到的值将尾随<数值表达式2>个零。

例:?ROUND(1024.5972,2),ROUND(1024.5972,0) ,ROUND(1024.5972,-2)

1024.60 1025 1000

(5)取模函数

格式: MOD(<数值表达式1>,<数值表达式2>)

功能: 返回<数值表达式1>除以<数值表达式2>的余数,如<数值表达式2>为正,则函数值为正,否则为负.表达式自动取整再进行取模运算。与%相同。

例:?MOD(6*8,30/3),MOD(-89,7.5),MOD(89,-7.5), 6*8%(30/3),-89%7.5,89%(-7.5)

8 1 -1 8 1 -1 (6)最大值函数

格式: MAX(<表达式1>,<表达式2>[,<表达式3>…])

功能: 返回若干表达式中的最大值.表达式可以是各种数据类型,但在同一个函数中的表达式

的类型应一致.

(7)最小值函数

格式:MIN(<表达式1>,<表达式2>[,<表达式3>…])

功能: 返回若干表达式中的最小值.

(8)绝对值函数

格式: ABS(<数值表达式>)

功能: 返回<数值表达式>的绝对值.

(9)平方根函数

格式: SQRT(<数值表达式>)

功能: 返回<数值表达式>的算术平方根. <数值表达式>应大于或等于零.

(10)指数函数

格式:EXP(<数值表达式>)

功能: 返回以e为底的指数值, <数值表达式>为e的指数部分.

例: ?ABS(30-40),SQRT(64),EXP(0),EXP(1)

10 8 1 2.72

(11)符号函数

格式: SIGN(<数值表达式>)

功能:根据<数值表达式>的值为正、零、负数分别返回1、0、-1。

例:?SIGN(3.2),SIGN(0), SIGN(-3.2)

1 0 -1

(12)随机函数

格式: RAND(<数值表达式>)

功能: 返回一个0---1.0之间的随机数. <数值表达式>是随机种子.如果<数值表达式>是一个正数,则该数将代替缺省"种子",如果是相同的正数,则产生相同的随机序列; 如果<数值表达式>是一个负数, 由系统时钟产生"种子".为了获得真正的随机序列,可以在第一个RAND函数中使用负参数,用该数代替缺省"种子", 而以后的RAND()不带任何参数.

例: =RAND(-1)

?(b-a)*RAND()+a

二、字符型函数

在使用字符型函数时,应注意每一个汉字相当于两个西文字符的位置。

(一)字符串截取函数

该类函数的输出是字符型的.

(1)取消前后空格函数

格式: ALLTRIM(<字符表达式>)

功能: 去掉<字符表达式>中的前后空格.

(2)删除字符串前导空格函数

格式: LTRIM(<字符表达式>)

功能: 截去<字符表达式>中左边空格.

例: ?"计算机"+" 应用" && 计算机应用

(3)删除字符串尾部空格函数

格式: TRIM(<字符表达式>)/RTRIM(<字符表达式>)

功能: 字符串尾部空格.若<字符表达式>全由空格组成,则函数返回空串.

例: STORE "计算机" TO Z

?TRIM(Z)+"应用" && 计算机应用

(4)左子串截取函数

格式: LEFT(<字符表达式>,<数值表达式>)

功能: 截取<字符表达式>最左边的<数值表达式>个字符为一个子字符串. 若<数值表达式>的值大于<字符表达式>的长度,则该函数返回整个字符串;若<数值表达式>小于或等于零,则返回空串.

(6)右子串截取函数

格式:RIGHT(<字符表达式>,<数值表达式>)

功能: 截取<字符表达式>最右边的<数值表达式>个字符为一个子字符串. 若<数值表达式>的值大于<字符表达式>的长度,则该函数返回整个字符串;若<数值表达式>小于或等于零,则返回空串.

(6)取子串函数

格式:SUBSTR(<字符表达式>,<数值表达式1>[,<数值表达式2>])

功能: 截取<字符表达式>的子串. 其中, <数值表达式1>指定取子字符的起始位置, <数值表达式2>指定取字符的个数.若缺省<数值表达式2>或其值大于<字符表达式>的长度时,则将截取<数值表达式1>指定的位置起至最后一个字符为止的子串.当<数值表达式1>的值为0时,输出空串.

例: X="10/14/99"

?SUBSTR(X,7,2)+"年"+SUBSTR(X,1,2)+"月"+SUBSTR(X,4,2)+"日"

99年12月14日

?SUBSTR(X,7) &&输出余下所有字符

99

?SUBSTR(X,0,7) &&输出空串

(二)字符查找和替换函数

(1)子串检索函数

格式: AT(<字符表达式1>,<字符表达式2>[,<数值表达式>])

功能: 返回<字符表达式1>在<字符表达式2>中第<数值表达式>次出现的位置. 若<字符表达式1>不在<字符表达式2>中则返回0,若省略<数值表达式>则隐含为1. 其返回值类型为数值型.

例: STORE "I amastudent." TO STR2

STORE "am" TO STR1

?AT (STR1,STR2), AT(STR1,"student"), AT("t",STR2, 2)

3 0 9

(2)表达式计算函数

格式: EV ALUATE (<字符表达式>)

功能: 返回<字符表达式>的值. <字符表达式>是要计算的表达式,可以是一个字符串,一个合法的表达式,内存变量,数组元素或任何数据类型的字段.

例: X="学生.DBF"

USE EV ALUA TE('X')

A="9*5"

?EV ALUA TE("A") && 9*5 变量为字符型

?EV ALUA TE(A) && 45 相当于执行了命令?EV ALUA TE("9*5")

(3)字符串替换函数