VFP常用函数大全
一.字符及字符串处理函数:
字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型各异.
1.取子串函数:
格式:substr(c,n1,n2)
功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符型. 例:取字符串中的姓.
store \"王小风\" to xm ?substr(xm,1,2) 结果为:王
2.删除空格函数:以下3个函数可以删除字符串中的多余空格,3个函数的返回值均为字符型.
trim(字符串):删除字符串的尾部空格 alltrim(字符串):删除字符串的前后空格
ltrim(字符串):删除字符串的前面的空格 例:去掉第一个字符串的尾空格后与第二个字符串连接
store \"abcd \" to x store \"efg\" to y ?trim(x)+y
abcdefg 3.空格函数: 格式:space(n)
页脚
说明:该函数的功能是产生指定个数的空格字符串(n用于指定空格个数).
例:定义一个变量dh,其初值为8个空格 store space(8) to dh 4.取左子串函数:
串函数:
例:a=\"我是中国人\"
置函数:
串2的位置
式: lower(字符串)
页脚
格式:left(c,n) 功能:取字符串C左边n个字符. 5.取右子格式:right(c,n) 功能:取字符串c右边的n个字符 ?right(a,4) 国人 ?left(a,2) 我
6.empty(c):用于测试字符串C是否为空格. 7.求子串位格式:At(字符串1,字符串2) 功能:返回字符串1在字符例:?At(\"教授\副教授\") 2 8.大小写转换函数: 格upper(字符串)
功能:lower()将字符串中的字母一律变小写;upper()将
字符串中的字母一律变大写 例:
bl=\"FoxBASE\" foxbase
?lower(bl)+space(2)+upper(bl)
FOXBASE 9.求字符串长度函数: 格式:len(字符串) 功能:求指定字符串的长度
整函数:
并显示结果 ?int(25.69)
数)
算结果做四舍五入处理
.9962,-3)
页脚
例:a=\"中国人\" ?len(a) 6 二.数学运算函数: 1.取格式:int(数值) 功能:取指定数值的整数部分. 例:取整25 2.四舍五入函数: 格式:round(数值表达式,小数位功能:根据给出的四舍五入小数位数,对数值表达式的计例:对下面给出的数四舍五入并显示其结果
?round(3.14159,4),round(2048.9962,0),round(20483.1416 2049 2000 3.求平方根函数: 格
式:sqrt(数值)
功能:求指定数值的算术平方根 例:?sqrt(100) 10 4.最大值、最小值函数: 格式:
Max(数值表达式1,数值表达式2) Min(数值表达式1,数值表达式2)
功能:返回两个数值表达式中的最大值和最小值 例: x1=123.456 x2=234.567
?max(x1,x2) 234.567 ?min(x1,x2) 123.456 5.求余数函数:
格式:mod(表达式1,表达式2) 功能:求表达式1对表达式2的余数 例: ?mod(10,3)
1 6.求指数、对数函数: 格式: exp(数值表达式) log(数值表达式) 功能:
(1).exp()计算自然数e为底,表达式的值为指数的幂
(2).log()计算表达式值的自然对数,返回lnx的值. 例: x=1 y=exp(x)
?exp(x),log(x) 2.72 1 三.转换函数: 1.数值转
页脚
数字字符串函数:
格式:str(n,n1,n2) 功能:将数值n转换为字符串,n1为总长度,n2为小数位
例:?str(321.56) 322 &&隐含四舍五入取整转换为字符型数据
y=\"76\" ?val(x)+val(y) 100
转换为日期 例:set date
式 ?ctod(\"^2005.11.14\")
日期d转化为日期字符串
期. set century on
页脚
?str(321.56,6,2) 321.56 2.字符转数值函数: 格式:val(s) 功能:将数字字符串s转换为数值 例:x=\"23\" 3.字符转日期函数: 格式:ctod(c) 功能:将日期字符串cansi &&日期格式设为美国标准化协会格2005.11.14 4.日期转字符函数: 格式:dtoc(d) 功能:将例:将日期型数据转化为字符型日期数据并显示汉字日&&开启世纪前缀,即日期中年份用4位表示 set date
ansi
rq={^2005.11.14} rq=dtoc(rq)
?substr(rq,1,4)+\"\"+substr(rq,9,2)+\"日\"
年\"+substr(rq,6,2)+\"月
2005年11月14日 5.时间转字符函数: 格式:ttoc(时间) 功能:将时间转为时间字符串
6.字符转时间函数: 格式:ctot(c) 功能:将时间字符串转化为时间 7.字符串替换函数:
格式:stuff(<字符表达式1>,<起始位置>,<字符个数>,<字符表达式2>)
功能:从指定位置开始,用<表达式2>的值去替换<表达式1>中指定个数字符.若<字符个数>为零,直接插入;若<表达式2>为空字符串,则删除<表达式1>中指定个数的字符.
例:X=\"祝大家新年好!\" ?stuff(X,7,4,\"春节\") 祝大家春节好
?stuff(X,11,0,\"春节\") 祝大家新年春节好 ?stuff(x,7,4,\" \")
页脚
祝大家好 8.字符转ASCⅡ码函数: 格式:Asc(<字符表达式>)
功能:把<字符表达式>左边第一个字符转成相应的ASCⅡ码值 例:x=\"Foxpro\"
?Asc(x),Asc(lower(x)) 70 102 9.ASCⅡ码值转字符函数:
格式:chr(数值表达式) 功能:把数值转成相应的ASCⅡ码字符,返回值为字符型
例:?chr(70)+chr(111)+chr(111+9) Fox
四.日期函数: 1.系统日期函数: 格式:date()
功能:给出系统的当前日期,返回值是日期型数据.
例:显示系统日期 ?date() 11/14/05 set date ansi set
century on ?date() 2005.11.14 2.年、月、日函数:
格式1).year(日期表达式):从日期表达式中返回一个由四位数字表示的年份.
(2).month(日期表达式):从日期表达式中返回一个用数
页脚
字表示的月份.
(3).day(日期表达式):从日期表达式中返回一个用数字表示的日数. 例:测试系统日期
rq=date() ?year(rq),month(rq),day(rq) 2005 11 14
3.系统时间函数: 格式:time() 功能:得到当前时间字符串 例:?time()
20:32:26 4.系统日期时间函数: 格式:datetime() 功能:得到当前日期时间
例:?datetime() 2005.11.14 08:35:12 PM 5.星期函数:
格式:dow(日期表达式) cdow(日期表达式)
功能:dow用数字表示星期,1表示星期日,7为星期六;cdow用英文表示星期 例:?date()
2005.11.15 ?dow(date()),cdow(date()) 3 Tuesday
五.测试函数: 1.测试文件尾函数: 格式:eof([n]) 说明:
(1).n指定被测工作区号,其围为1~32767
页脚
(2).该函数用于测试指定工作区中的表的记录指针是否指向文件尾,是则返回真值;否则返回假值;省略可选项指当前工作区.
例:测试文件记录指针是否指向文件尾 use 职工档案 go bottom ?eof() .F.
skip ?eof() .T. 2.测试文件头函数: 格式:bof([n]) 说明:
(1).n指定被测工作区号,其围为1~32767
(2).用于测试指定工作区中的表的记录指针是否指向文件头,是则返回真值;否则返回假值;省略可选项指当前工作区.
例:测试记录指针是否指向文件头 use 职工档案 go top ?bof() .f. skip -1
?bof() .t. 3.测试当前记录号函数: 格式:recno() 功能:得到当前的记录号 例:
use 职工档案 ?recno() 1 skip ?recno() 2
4.测试表文件记录数函数: 格式:reccount() 功能:得到表的记录数
例:测试\"职工档案\"表的记录数 use 职工档案 ?reccount() 5 5.测试表字段数函数:
页脚
格式:fcount() 功能:得到当前的字段数 例:测试\"职工档案\"表共有多少个字段 use
职工档案 ?fcount() 9 6.测试查找记录是否成功函数: 格式:found()
功能:测试find、seek和locate命令查找记录是否成功.如成功则返回真值,否则为假值.
例:在\"职工档案\"表中查找\"小刚\"的文化程度 use 职工档案 locate for =\"小刚\"
?found() .t. display 7.文件测试函数: 格式:file(字符表达式)
功能:测试字符表达式指定的文件是否存在 例:?file(\"e:\\myvfp\\职工档案.dbf\"
.t. 8.数据类型测试函数: 格式:type(字符表达式)
功能:测试表达式的数据类型,返回大写字母:N(数值)、C(字符)、L(逻辑)、D(日期)、M(备注)
例: x=1236 y=\"hello\" ?type(\"x\" N ?type(\"y\" C
9.测试工作区函数: 格式:select() 功能:返回当前工作区
页脚
的区号 10.测试别名函数:
格式:alias() 功能:测试当前工作区的别名 例: select 1 use 职工档案
alias zgda select 2 use 工资情况 ?alias() 工资情况
&&通过别名选择工作区
前工作区打开的表名
符型变量中所存放的字符串.
use 工资情况 replace all
式1,表达式2)
页脚
&&打开表时,不指定别名,表名即为别名 select zgda ?select() 1 11.表文件名函数: 格式:dbf() 功能:返回当例: use 工资情况 ?dbf() e:\\myvfp\\工资情况
六.其它函数: 1.宏替换函数: 格式:&变量名
说明:vfp中只有宏替换函数没有括号.功能是返回指定字例:为\"工资情况\"表中每个人加100元工资 gz=\"工资\" &gz with &gz+100 2.条件函数: 格式:iif(表达式,表达
功能:若表达式值为真,则返回表达式1的值;否则返回表达式2的值;函数返回值类型与表达式1或表达式2类型一致
a=3 b=5 ?iif(a>b,\"高兴\开心\") 开心 3.消息框函数:
格式:messagebox(提示文本[,对话框类型[,对话框标题文本]]) 功能:显示提示对话框
说明: (1)对话框类型见表1: 对话框类型功能 0仅\"确定\"按钮 1\"确定\"和\"取消\"按钮
2\"终止\重试\"和\"忽略\"按钮 3\"是\否\"和\"取消\"按钮 4\"是\"和\"否\"按钮
5\"重试\"和\"取消\"按钮 16stop图标 32?图标 48!图标 64i图标 0默认第1个按钮
256默认第2个按钮 512默认第3个按钮 (2).返回值见表2: 返回值按钮 1确定 2取消
3终止 4重试 5忽略 6是 7否
例:分析messagebox(\"您确实要退出系统吗?\提示信息\")会弹出什么样的窗口.
分析:回头观察此函数的格式,弹出的对话框中的提示文
页脚
本是\"您确实要退出系统吗\对话框标题是\"提示信息\
函数中间有\"4+64\其中4指定对话框中出现\"是\"和\"否\"两个按钮(见表1),64指定对话框中出现i图标(见表2)
ok,我们在命令窗口依次执行下列命令:
tui=messagebox(\"您确实要退出系统吗?\提示信息\")
&&变量tui用于接收messagebox函数的返回值,弹出的窗口如图1 ?tui
&&变量tui值取决于运行时用户点了哪个按钮,如果点了\"是\返回6,如果点了\"否\返回7,见表2
功能:测试字符表达式指定的文件是否存在 例:?file(\"e:\\myvfp\\职工档案.dbf\")
.t. 8.数据类型测试函数: 格式:type(字符表达式)
功能:测试表达式的数据类型,返回大写字母:N(数值)、C(字符)、L(逻辑)、D(日期)、M(备注)
例: x=1236 y=\"hello\" ?type(\"x\") N ?type(\"y\") C
页脚
9.测试工作区函数: 格式:select() 功能:返回当前工作区的区号 10.测试别名函数:
格式:alias() 功能:测试当前工作区的别名 例: select 1 use 职工档案
&&通过别名选择工作区
前工作区打开的表名
印机上打印
页脚
alias zgda select 2 use 工资情况 ?alias() 工资情况
&&打开表时,不指定别名,表名即为别名 select zgda ?select() 1 11.表文件名函数: 格式:dbf() 功能:返回当例: use 工资情况 ?dbf() e:\\myvfp\\工资情况
? 在下一行显示表达式串
?? 在当前行显示表达式串
... 将数据按用户设定的格式显示在屏幕上或在打 ACCEPT 把一个字符串赋给存变量
APPEND 给数据库文件追加记录
APPEND FROM 从其它库文件将记录添加到数据库文件中
AVERAGE 计算数值表达式的算术平均值
PACK 彻底删除加有删除标记的记录
页脚
ZAP 删除当前数据库文件的所有记录(不可恢复)
因篇幅问题不能全部显示,请点此查看更多更全内容