VF常用函数
- 格式:doc
- 大小:76.50 KB
- 文档页数:10
常用函数
函数是系统为实现一些特定功能而设置的内部程序,作为系统的一部分供用户使用.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)字符串替换函数