| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 14134 人关注过本帖, 3 人收藏
标题:vfp 函数大全整理(转)
只看楼主 加入收藏
qshuju
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:217
专家分:112
注 册:2011-6-9
结帖率:82.14%
收藏(3)
 问题点数:0 回复次数:13 
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.取左子串函数:
  格式:left(c,n)
  功能:取字符串C左边n个字符.
  5.取右子串函数:
  格式:right(c,n)
  功能:取字符串c右边的n个字符
  例:a=\"我是中国人\"
  ?right(a,4)
  国人
  ?left(a,2)
  我
  6.empty(c):用于测试字符串C是否为空格.
  7.求子串位置函数:
  格式:At(字符串1,字符串2)
  功能:返回字符串1在字符串2的位置
  例:?At(\"教授\",\"副教授\")
  2
  8.大小写转换函数:
  格式:
  lower(字符串)
  upper(字符串)
  功能:lower()将字符串中的字母一律变小写;upper()将字符串中的字母一律变大写
  例:
  bl=\"FoxBASE\"
  ?lower(bl)+space(2)+upper(bl)
  foxbase FOXBASE
  9.求字符串长度函数:
  格式:len(字符串)
  功能:求指定字符串的长度
  例:a=\"中国人\"
  ?len(a)  
    6
 二.数学运算函数:
  1.取整函数:
  格式:int(数值)
  功能:取指定数值的整数部分.
  例:取整并显示结果
  ?int(25.69)
  25
  2.四舍五入函数:
  格式:round(数值表达式,小数位数)
  功能:根据给出的四舍五入小数位数,对数值表达式的计算结果做四舍五入处理
  例:对下面给出的数四舍五入并显示其结果
  ?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3)
  3.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 &&隐含四舍五入取整转换为字符型数据
  ?str(321.56,6,2)
  321.56
  2.字符转数值函数:
  格式:val(s)
  功能:将数字字符串s转换为数值
  例:x=\"23\"
  y=\"76\"
  ?val(x)+val(y)
  100
  3.字符转日期函数:
  格式:ctod(c)
  功能:将日期字符串c转换为日期
  例:set date ansi &&日期格式设为美国标准化协会格式
  ?ctod(\"^2005.11.14\")
  2005.11.14
  4.日期转字符函数:
  格式:dtoc(d)
  功能:将日期d转化为日期字符串
  例:将日期型数据转化为字符型日期数据并显示汉字日期.
  set century on &&开启世纪前缀,即日期中年份用4位表示
  set date ansi
  rq={^2005.11.14}
  rq=dtoc(rq)
  ?substr(rq,1,4)+\"年\"+substr(rq,6,2)+\"月\"+substr(rq,9,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()
  工资情况 &&打开表时,不指定别名,表名即为别名
  select zgda &&通过别名选择工作区
  ?select()
  1
  11.表文件名函数:
  格式:dbf()
  功能:返回当前工作区打开的表名
  例:
  use 工资情况
  ?dbf()
  e:\\myvfp\\工资情况
六.其它函数:
  1.宏替换函数:
  格式:&变量名
  说明:vfp中只有宏替换函数没有括号.功能是返回指定字符型变量中所存放的字符串.
  例:为\"工资情况\"表中每个人加100元工资
  gz=\"工资\"
  use 工资情况
  replace all &gz with &gz+100
  2.条件函数:
  格式:iif(表达式,表达式1,表达式2)
  功能:若表达式值为真,则返回表达式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+64\",其中4指定对话框中出现\"是\"和\"否\"两个按钮(见表1),64指定对话框中出现i图标(见表2)
  ok,我们在命令窗口依次执行下列命令:
  tui=messagebox(\"您确实要退出系统吗?\",4+64,\"提示信息\")
  &&变量tui用于接收messagebox函数的返回值,弹出的窗口如图1
  ?tui
  &&变量tui值取决于运行时用户点了哪个按钮,如果点了\"是\",返回6,如果点了\"否\",返回7,见表2
  说明:实际应用中,我们常在系统菜单或在表单的\"退出\"按钮中添加如下代码:
  tui=messagebox(\"您确实要退出系统吗?\",4+64,\"提示信息\")
  if tui=6 &&如果此条件成立,说明用户点了\"是\"按钮,执行quit命令,安全退出
  quit
  endif


[ 本帖最后由 qshuju 于 2011-7-4 15:42 编辑 ]
搜索更多相关主题的帖子: 字符串 store 
2011-06-17 10:00
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
内容不齐。
2011-06-17 10:32
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:0 
不错,有利于学习.
GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]]) 参数lRootOnly怎么用?
2011-06-17 12:13
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
帮助文件是最完整的资料大全!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2011-06-17 17:06
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:0 
帮助里就是这么解释的:
lRootOnly
指定只显示 cDirectory 及其子目录。该参数防止向上定位到要文件夹目录。如果没有指定 cDirectory, 就使用默认目录(SET DEFAULT 的值)。

我想指定只显示 cDirectory 及其子目录,不会写参数,下面的表达式都不对.
h=GETDIR("d:","请选择备份目录"," ",0+1+2+8+16+32,(d:\新建文件夹))
h=GETDIR("d:","请选择备份目录"," ",0+1+2+8+16+32,d:\新建文件夹)
h=GETDIR("d:","请选择备份目录"," ",0+1+2+8+16+32,lRootOnly)
h=GETDIR("d:","请选择备份目录"," ",0+1+2+8+16+32,"lRootOnly")
h=GETDIR("d:","请选择备份目录"," ",0+1+2+8+16+32,(lRootOnly)

请问怎样写红字部分?
2011-06-17 21:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 5楼 muyubo
變量命名爲lRootOnly,表明那是邏輯型數據。

授人以渔,不授人以鱼。
2011-06-28 12:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 5楼 muyubo
變量命名爲lRootOnly,表明那是邏輯型數據。

授人以渔,不授人以鱼。
2011-06-28 12:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用muyubo在2011-6-17 12:13:41的发言:

不错,有利于学习.
GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]]) 参数lRootOnly怎么用?


這裏的lRootOnly是邏輯型參數,只接受.T.或.F.。如果是.T.,那麽對話框中顯示的目錄樹僅以cDirectory參數指定的目錄爲根節點,它下面的任何子目錄都可以看到,但看不到它上面的目錄。如果是.F.,是可以看到上層目錄的。默認是.F.。

授人以渔,不授人以鱼。
2011-06-28 12:41
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:0 
回复 8楼 TonyDeng
终于明白了.非常感谢TonyDeng!!!!!!!!
TonyDeng是高手,崇拜你,今后多指教.

[ 本帖最后由 muyubo 于 2011-6-28 15:06 编辑 ]
2011-06-28 14:43
hyh2011e
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-7-2
收藏
得分:0 
不错,好好学习~~~
2011-07-02 22:59
快速回复:vfp 函数大全整理(转)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033291 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved