11春vfp常用函数汇总表课案.docx
《11春vfp常用函数汇总表课案.docx》由会员分享,可在线阅读,更多相关《11春vfp常用函数汇总表课案.docx(22页珍藏版)》请在冰豆网上搜索。
![11春vfp常用函数汇总表课案.docx](https://file1.bdocx.com/fileroot1/2023-1/23/26966f54-ee64-4392-b6c1-7904355757a4/26966f54-ee64-4392-b6c1-7904355757a41.gif)
11春vfp常用函数汇总表课案
函数格式
函数功能
备注
实例
结果
返回值类型
ABS(数值表达式)
绝对值函数
返回数值表达式的绝对值
ABS(-7.9)
7.9
N
SIGN((数值表达式)
符号函数
数值表达式>0时函数值为1
数值表达式<0时函数值为-1
数值表达式=0时函数值为0
SIGN(6.8)
SIGN(-6.8)
SING(0)
1
-1
0
N
SQRT(数值表达式)
求平方根函数
数值表达式不能为负
SQRT(16)
4
N
PI()
圆周率函数
该函数没有参数,只返回圆周率π的值
PI()
3.14
N
INT(数值表达式)
取整函数
只取数值表达式的整数部分.
INT(3.5)
3
N
CEILING(数值表达式)
取出大于等于最小的整数
返回大于或等于指定数值表达式的最小整数
CEILING(7.6)
CEILING(-7.6)
8
-7
N
FLOOR(数值表达式)
取出小于等于最大的整数
返回小于或等于指定数值表达式的最大整数
FLOOR(7.6)
FLOOR(-7.6)
7
-8
N
ROUND(源数值型数,舍入位数)
四舍五入函数
舍入位数>0时表示要保留的小数位数
舍入位数<0时表示整数部分的舍入位数
ROUND(12365.789,2)
ROUND(12365.789,-2)
ROUND(15.8,-2)
ROUND(65.8,-2)
12365.79
12400
0
100
N
MOD(被除数,除数)
余数函数
如果被除数与除数符号相同则正常上商求余数
如果被除数与除数符号相反则在正常商的基础上多上一位,即商为原来的商+1再求余数
两种情况的余数符号与除数的符号相同
MOD(15,7)
MOD(-15,-7)
MOD(15,-7)
MOD(-15,7)
余数:
1商:
2
余数:
-1商:
2
余数:
-6商:
3
余数:
6商:
3
N
MAX(表达式1,表达式2[,表达式3…])
最大值函数
计算各表达式的值返回最大值.表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须相同。
MAX(2,81,143)
MAX(’2’,’81’,’143’)
143
’81’
表达式的类型
MIN(表达式1,表达式2[,表达式3…])
最小值函数
计算各表达式的值返回最小值.表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须相同。
MIN(2,81,143)
MIN(’2’,’81’,’143’)
2
’143’
表达式的类型
LEN(字符表达式)
字符串长度函数
返回字符串的长度,即所包含的字符个数。
一个汉字占两个字符
LEN(’NCRE志成’)
8
N
LOWER(字符表达式)
大写字母转小写字母函数
大写字母转成小写字母,其他字符不变
LOWER(’Aa3-志’)
’AA3-志’
C
UPPER(字符表达式)
小写字母转大写字母函数
小写字母转成大写字母,其他字符不变
UPPER(’Aa3-志’)
’aa3-志’
C
SPACE(产生空格个数)
空格字符串生成函数
生成指定数目的穿梭格组成的字符串
?
’12345678’
?
’|’+SPACE
(2)+’|’
12345678
| |
C
TRIM(字符表达式)
删除尾部空格函数
去掉指定字符表达式值尾部(右侧)空格
?
’0123456789’
?
’*’+SPACE
(2)+TRIM(’AB’)+SPACE(3)+’*’
?
’*’+TRIM(SPACE
(2)+’AB’+SPACE(3))+’*’
0123456789
* AB *
* AB*
C
LTRIM(字符表达式)
删除前导空格函数
去掉指定字符表达式值首部(左侧)空格
?
’0123456789’
?
’*’+SPACE
(2)+LTRIM(’AB’)+SPACE(3)+’*’
?
’*’+LTRIM(SPACE
(2)+’AB’+SPACE(3))+’*’
0123456789
* AB *
*AB *
C
ALLTRIM(字符表达式)
删除前导和尾部空格函数
去掉指定字符表达式值首部和尾部(左右两侧)空格
?
’0123456789’
?
’*’+SPACE
(2)+ALLTRIM(’AB’)+SPACE(3)+’*’
?
’*’+ALLTRIM(SPACE
(2)+’AB’+SPACE(3))+’*’
0123456789
* AB *
*AB*
C
LEFT(字符表达式,长度)
左取子串函数
从字符表达式值的左侧取一个指定长度的子串作为函数值
LEFT(’ABCDEF’,2)
AB
C
RIGHT(字符表达式,长度)
右取子串函数
从字符表达式值的右侧取一个指定长度的子串作为函数值
RIGHT(’ABCDEF’,2)
EF
C
SUBSTR(字符表达式,起始位置[,长度])
取子串函数
从字符表达式值的左侧取一个指定长度的子串作为函数值
SUBSTR(’ABCDEF’,2,3)
SUBSTR(’ABCDEF’,1,2)
SUBSTR('ABCDEF',LEN('ABCDEF')-2+1,2)
BCD
AB
EF
C
OCCURS(子字符串,源字符串)
计算子串出现次数函
返回子字符串在源字符串中出现的次数,若子字符串不是源字符串的子串,函数值为0
OCCURS(’A’,’ABCABCDA’)
OCCURS(’BC’,’ABCABCDA’)
OCCURS(’DD’,’ABCABCDA’)
3
2
0
N
AT(子字符串,源字符串[,次数])
区分大小写子串位置函数
返回子字符串在源字符串中指定出现次数的位置,但是要区分大小写
AT(’AB’,’ABCabCAB’)
AT(’AB’,’ABCabCAB’,2)
AT(’AB’,’ABCabCAB’,4)
1
7
0
N
ATC(子字符串,源字符串[,次数])
不区分大小写子串位置函数
返回子字符串在源字符串中指定出现次数的位置,但是不区分大小写
ATC(’AB’,’ABCabCAB’)
ATC(’AB’,’ABCabCAB’,2)
ATC(’AB’,’ABCabCAB’,4)
1
4
0
N
STUFF(源字符串,子串起始位置,子串长度,要替换的字符串)
子串替换函数
把从源字符串中按指定位置开始取指定长度的子串用第一个字符串替换.
若长度为0则实现插入功能;
若要替换的字符串为空串,则实现删除功能
STUFF(’ABCDEF’,2,3,’***’)
STUFF(’ABCDEF’,2,3,’*’)
STUFF(’ABCDEF’,2,3,’****’)
STUFF(’ABCDEF’,2,0,’***’)
STUFF(’ABCDEF’,2,3,’’)
A***EF
A*EF
A****EF
A***BCDEF
AEF
C
CHRTRAN(源字符串,源串中需要被替换的字符列表,将要替换成的字符列表)
字符替换函数
源字符串中的字符若在第二个参数中出现则用第三个参数中相对位置的字符来替换
如果第三个字符个数少于第二个字符串包含的字符个数,则没有对应的字符将在源字符串被删除
如果第三个字符个数多于第二个字符串包含的字符个数,则多余的字符被忽略
CHRTRAN(’ABCDEF’,’AEC’,’*+#’)
CHRTRAN(’ABCDEF’,’AEC’,’*+’)
CHRTRAN(’ABCDEF’,’AE’,’*+#’)
如果字符串是汉字,可能在截取时会出错.如:
?
CHRTRAN([科技信息],[科技],[计算机])
结果为:
计怂信息
*B#D+F
*BD+F
*BCD+F
C
LIKE(字符串通式,字符串实例)
字符串匹配函数
只有第一个参数中的*?
表示通配符,*表示多个字符,?
表示一个字符.若第一个参数能表示第二个参数则函数返回.T.,否则返回.F.
LIKE(’AB*’,’ABCD’) &&*<=>CD
LIKE(’AB*’,’ABC’) &&*<=>C
LIKE(’AB?
’,’ABCD’) &&?
<≠>CD
LIKE(’AB?
’,’ABC’) &&?
<=>C
.T.
.T.
.F.
.T.
L
DATE()
系统日期函数
返回系统日期
假设系统日期时间为:
2006年9月23日8点50分01秒:
DATE()
2006/09/23
D
TIME()
系统时间函数
返回系统时间
假设系统日期时间为:
2006年9月23日8点50分01秒:
TIME()
08:
50:
01
C
DATETIME()
系统日期时间函数
返回系统日期时间
假设系统日期时间为:
2006年9月23日8点50分01秒:
DATETIME()
2006/09/2308:
50:
01
T
YEAR(日期表达式|日期时间表达式)
年份函数
返回系统日期年份
假设系统日期时间为:
2006年9月23日8点50分01秒:
YEAR(DATETIME())
2006
N
MONTH(日期表达式|日期时间表达式)
月份函数
返回系统日期月份
假设系统日期时间为:
2006年9月23日8点50分01秒:
MONTH(DATETIME())
9
N
DAY(日期表达式|日期时间表达式)
天数函数
返回系统日期天数
假设系统日期时间为:
2006年9月23日8点50分01秒:
DAY(DATETIME())
23
N
HOUR(日期时间表达式)
小时函数
返回系统日期时间的小时
假设系统日期时间为:
2006年9月23日8点50分01秒:
HOUR(DATETIME())
8
N
MINUTE(日期时间表达式)
分钟函数
返回系统日期时间的分钟
假设系统日期时间为:
2006年9月23日8点50分01秒:
MINUTE(DATETIME())
50
N
SEC(日期时间表达式)
秒数函数
返回系统日期时间的秒
假设系统日期时间为:
2006年9月23日8点50分01秒:
SEC(DATETIME())
01
N
STR(数值表达式,总长度[,小数位数])
数值转换成字符串函数
数值转换成字符串型.设有一个理想长度L=整数部分+小数部分+1位小数点
总长度>L:
加前导空格
数值整数部分<总长度先满足整数部分而自动调整小数位数
总长度<数值整数部分:
返回总长度个星号(*)
N=-12345.678
?
’1234567890’
?
STR(N,10,2) &&L=6+2+1=9<10
?
STR(N,8,3) &&L=6+3+1=10 6<8<10
?
STR(N,4,3) &&L=6+3+1=10 4<6
1234567890
-12345.68
-12345.7
****
C
VAL(字符表达式)
字符串转换成数值函数
字符串转换成数值型
当遇到第一个非数字字符时停止转换
VAL(’123.458’)
VAL(’12K3.458’)
VAL(’F123.458’)
123.458
12
0
N
CTOD(字符表达式)
字符串转换成日期函数
字符型数据转换为日期型数据.字符串的日期部分格式要与SETDATETO命令设置的格式一致.其中的年份可以用四位或两位表示,若用两位,则世纪由SETCENTURYTO语句指定.
SETDATETOYMD&&日期格式为年月日
SETCENTURYON &&年用四位显示
SETCENTURYTO19ROLLOVER51
&&年份>=51时为19__年即20世纪
&&年份<51时为20__年即21世纪
?
CTOD(’2006/09/23’)
?
CTOD(’06/09/23’)
?
CTOD(’76/09/23’)
2006/09/23
1906/09/23
2076/09/23
D
CTOT(字符表达式)
字符串转换成日期时间函数
字符型数据转换为日期时间型数据.字符串的日期部分格式要与SETDATETO命令设置的格式一致.其中的年份可以用四位或两位表示,若用两位,则世纪由SETCENTURYTO语句指定.
SETDATETOYMD&&日期格式为年月日
SETCENTURYON &&年用四位显示
SETCENTURYTO19ROLLOVER51
&&年份>=51时为19__年即20世纪
&&年份<51时为20__年即21世纪
?
CTOT(’2006/09/23’+SPACE
(1)+’08:
50:
01’)
&&2006/09/2308:
50:
01
?
CTOT(’06/09/23’+SPACE
(1)+’08:
50:
01’)
&&1906/09/2308:
50:
01
?
CTOT(’76/09/23’+SPACE
(1)+’08:
50:
01’)
&&2076/09/2308:
50:
01
T
DTOC(日期时间表达式|日期时间表达式[,1])
日期转换成字符串函数
将日期型数据转换成字符型数据,若加1选项,则共8个字符,格式:
YYYYMMDD
假设系统日期时间为:
2006年9月23日8点50分01秒:
?
DTOC(DATE())
?
DTOC(DATE(),1)
2006/09/23
20060923
C
TTOC(日期时间表达式[,1])
日期时间转换成字符串函数
将日期时间型数据转换成字符型数据,若加1选项,则采用24小时制,共14个字符,格式:
YYYYMMDDHHMMSS
假设系统日期时间为:
2006年9月23日8点50分01秒:
?
TTOC(DATETIME())&&2006/09/2308:
50:
01
?
TTOC(DATETIME(),1) &&20060923085001
C
&字符型变量[.]
宏替换函数
不用加括号的函数,参数必须是字符型变量,&相当于去掉双引号(字符型定界符)
X=’A’
A=123
?
X
?
&X
A
123
不确定
BETWEEN(被测表达式,范围下限,范围上限)
值域测试函数
如果被测表达式在范围上下限内(包括上下限)函数返回值为.T.,否则返回值为.F.
BETWEEN(15,10,20,)
BETWEEN(10,10,20,)
BETWEEN(20,10,20,)
BETWEEN(55,10,20,)
.T.
.T.
.T.
.F.
L
ISNULL(表达式)
空值(NULL值)测试函数
表达式值为NULL时函数值为.T.否则为..F.
ISNULL(.NULL.)
ISNULL(0)
.T.
.F.
L
EMPTY(表达式)
"空"值测试函数
“空”值与NULL是两个不同的概念.数值型、货币型、浮点型、整型、双精度型值为0时函数返回为.T.否则为.F.;日期型、日期时间型、备注字段、字符型值为空时函数值为.T.否则为.F.
EMPTY(.NULL.)
EMPTY(0)
EMPTY(SPACE(0))
EMPTY(.F.)
EMPTY(.T.)
.F.
.T.
.T.
.T.
.F.
L
VARTYPE(表达式[,逻辑表达式])
数据类型测试函数
返回一个大写字母,函数值为字符型.若表达式的值为.NULL.值,则根据逻辑表达式值决定返回的类型:
如果逻辑表达式的值为.T.,就返回表达式的前一次数据类型,若为.F.或缺省,则返回X表示运算结果为NULL值
A=’AAS’
B=20&&前一次数据
B=.NULL.&&当前数据
?
VARTYPE(A)
?
VARTYPE(B)
?
VARTYPE(B,.F.)
?
VARTYPE(B,.T.)
变量B的前一次原数据为20,现数据为.null.
C
X
X
N
C
IIF(条件,条件成立时结果表达式,条件不成立时结果表达式)
条件测试函数
参数条件成立则函数返回第二个表达式的值,若条件不成立则返回第三个表达式的值.后两个表达式的类型可以不相同.
?
IIF(10<20,”T”,.F.)
?
IIF(10>20,”T”,.F.)
T
.F.
由后两个参数类型决定
WEEK(日期表达式)
从日期表达式中返回一年中第几周的数值。
WEEK()函数返回1到53之间的一个数,该数代表一年中周的序号。
?
WEEK({^2008/08/08})
32
N
DOW(日期表达式)
或CDOW(日期表达式)
从日期表达式返回该日期是一周的第几天
1为星期日,以此类推。
CDOW用英文单词表示星期几.
?
DOW({^2008/08/08})
?
CDOW({^2008/08/08})
6
Friday
N,
CDOW()是字符型C
ASC(字符串表达式)
返回字符表达式中最左边字符的ANSI值
仅返回字符串中第一个字符的ANSI值,忽略其他字符。
?
ASC([a])
97
N
CHR(数值)
由ANSI数值代码返回其对应的字符。
指定一个介于0和255之间的数值,返回与之对应的ANSI字符。
?
CHR(97)
a
C
RAND()
产生0到1之间的随机数
带两位小数
?
RAND()->0.86
每次不相同
N
REPLICATE(<字符表达式>,<数值表达式>)
产生重复字符的字符串函数
函数值为一个字符串,将<字符表达式>重复<数值表达式>所指定的次数。
?
replicate([HUNAN],2)+replicate([湖南],3)
HUNANHUNAN湖南湖南湖南
C
EOF([工作区号|表别名])
表文件尾测试函数
表文件尾是指最后一条记录的后面位置.-若当前没有表打开,则函数返回.F.;若表中不包含任何记录,函数返回.T.
L
BOF([工作区号|表别名])
表文件首测试函数
表文件首是指第一条记录的前面位置.-若当前没有表打开,则函数返回.F.;若表中不包含任何记录,函数返回.T.
L
RECNO([工作区号|表别名])
记录号测试函数
返回当前表文件或指定表文件中的当前记录号.如果指定工作区上没有打开表文件,则返回0.若记录指针指向文件夹尾,函数返回总记录数+1的值;若记录指针指向文件首,函数值为表文件中第一条记录号.
设1工作区有一个表打开且共有5表记录,其它工作区没表打开:
SELE1
2
?
RECNO()
GOTOP
SKIP–1
?
RECNO()
GOBOTTOM
SKIP
?
RECNO()
2
1
6
N
RECCOUNT([工作区号|表别名])
记录个数测试函数
返回当前表文件或指定表文件中的记录个数.如果指定工作区上没有打开表文件,则返回0.
设1工作区有一个表打开且共有5表记录,其它工作区没表打开:
SELE1
?
RECCOUNT()
SELE0
?
RECCOUNT()
5
0
N
DELETED(表的别名|工作区号)
记录删除测试函数
若当前记录有删除标记”*”,则函数返回值为.T.;否则为.F.
设当前记录号为3且整个表只有此记录有删除标记:
DELETED()
2
DELETED()
.T.
.F.
L
<>
FOUND()
查找成功测试函数
如果CONTINUE、FIND、LOCATE或SEEK命令执行成功,函数的返回值为“真”(.T.)。
clear
Use等级考试
LOCATEFOR[丽]$姓名
DOWHILEFOUND()
disp
CONTINUE
ENDDO
use
.t.
李丽
.t.
韩丽娜
…
函数格式
函数功能
备注
实例
结果
返回值类型
函数分类
1、数学函数
函数用途
ABS(<数值表达式>)绝对值,|x|
CEILING(<数值表达式>)>=自变量的最小整数
EXP(<数值表达式>)对基E的幂,e=2.71828
FLOOR(<数值表达式>)<=自变量的最大整数
INT(<数值表达式>)取整(舍尾)自变量
LOG(<数值表达式>)自变量的自然对数,lnx
LOG10(<数值表达式>)自变量的普通对数,lgx
MAX(<表达式1>,<表达式2>)两个值的最大值
MIN(<表达式1>,<表达式2>)两个值的最小值
MOD(<数值表达式1>,<数值表达式2>)求余数
RAND([<数值表达式1>])返回伪随机数
ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量
SIGN(<数值表达式>)自变量的符号
SQRT(<数值表达式>)平方根(正根)
2、字符串操作函数
函数用途
&<内存变量>用于代替内存变量内容
LEN(<字符串表达式>)返回字符串表达式的字符个数
SPACE(<数值表达式>)生成空格
SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>])求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串
LOWER(<字符串表达式>)将字符串字母转换成小写字母
UPPER(<字符串表达式>)将字符串字母转换成大写字母
TRIM(<字符串表达式>)删除字符串尾空格
ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码
CHR(<数值表达式>)将数值表达式转换成字符
AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现
STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值表达式总长,n为小数位数
VAL(<字符串表达式>)将数字字符串转换为数字
TYPE(<表达式>)检测表达式值的数据类型
LTRIM(<字符串表达式>)删除字符串左部空格
RTRIM(<字符串表达式>)删除字符串右部空格
LEFT(<字符串表达式>,<数值表达式n>)取字符串左边部分字符,n为返回的字符个数
RIGHT(<字符串表达式>,<数值表