常用命令函数程序汇总
2008-09-10 21:23 | (分类:默认分类)
一、主要命令:
1、CREATE
作用:建立一个新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA
,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同
时选择,下同。)
说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。
2、MODIFY STRUCTURE
作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE
说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND
作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]
说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT
作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]
说明:INSERT 在当前记录后插入一记录;
INSERT BEFORE 在当前记录前插入一记录;
INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE
作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE
6、USE
作用:打开和关闭表文件。
格式:USE [<文件名>]
USE
说明:前一个命令用来打开<文件名>指定的表文件,该表如有备注型字段,则同时打开相应的备注文件(.fpt文件);后一个命令关闭当前打开的表文件。
7、LIST和DISPLAY
作用:显示表(.dbf)的内容、结构或状态。
格式:LIST|DISPLAY [OFF] [<范围>] [FIELDS] <表达式表> [WHILE <条件>] [FOR <条件
>]
[TO PRINT|TO FILE <文件>]
LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件>]
LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>]
说明:命令带OFF参数表示不显示记录号,范围指定对哪些记录进行操作,范围包括:
RECORD n
第几号记录、NEXT n 当前记录开始的几个记录、REST 自当前记录开始至文件末尾的所有记录、ALL所有的记录。不选范围则隐含范围为ALL;FIELDS后跟字段名,字段名与字段名之间用逗号分隔。WHILE后跟条件,FOR后面也跟条件,区别是,WHILE后的条件如果满足,便停止查找;FOR后的条件查找所有满足条件的记录。TO PRINT和TO FILE <文件>分别表示将显示结果在打印机上打印出来和将显示结果输出到文件。DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示,并且在该命令中,如果省略范围仅显示当前记录。格式中,下面两个命令分别为显示表结构(STRUCTURE)和工作状态(STATUS)。
8、记录的定位
作用:用记录指针(POINTER)定位记录。
格式:GO[TO] RECORD n|TOP|BOTTOM
n
SKIP [+|-]
说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录,BOTTOM定位到最后一个记录。第二个命令定位到第n个记录,n是一个数值。第三个命令又叫相对定位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一个记录。
9、CHANGE和EDIT
作用:显示要编辑或修改的字段。
格式:CHANGE|EDIT [<范围>] [FIELDS <字段名表>] [WHILE <条件>] [FOR <条件>]
10、BROWSE
作用:打开一个"浏览"窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS <字段名表>]
11、REPLACE
作用:用表达式的值代替命令中与之相对应的字段的内容。
格式:REPLACE [<范围>] <字段1> WITH <表达式1>[,<字段2> WITH <表达式2>] [FOR <条件> ] [WHILE<条件>]
12、DELETE、PACK、ZAP和RECALL
作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。
格式:DELETE [<范围>] [WHILE<条件>] [FOR <条件>] (特例:DELETE FILE FILENAME.DBF,该命令删除指定的表文件)
PACK
ZAP
RECALL [<范围>] [FOR <条件>] [WHILE<条件>]
13、SORT和INDEX
作用:分别是建立一个其记录以新的物理顺序排列的新表文件和对当前表根据关键字表达式
的值从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。
格式:SORT TO <文件名> ON <字段名1> [/A] [/C] [/D][,<字段名2> [/A] [/C] [/D]]...
[ASCENDING|DESCENDING] [<范围>] [FOR <条件>] [WHILE<条件>] [FIELDS<字段表>]
INDEX ON <关键字表达式> TO <文件名>
INDEX ON <关键字表达式> TAG <标识名> [OF <文件名>] [FOR <条件>]
说明:第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字符型关键字而言,ASCENDING和DESCENDING分别表示升序和降序。第1个命令建立.dbf表文件,第2个命令建立.idx单一索引文件,第3个命令建立.cdx复合索引文件(Compound Index)。
14、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO
作用:分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。
格式:USE <表文件名> INDEX <索引文件名表>
SET INDEX TO [<索引文件名表>]
SET ORDER TO [<索引文件名>](特例:重新索引命令:REINDEX)
15、FIND、SEEK和LOCATE及CONTINUE
作用:前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容与命令行中字符串相同的第一个记录。后一个命令在用USE打开表文件以后,直接查询表中字段内容。
格式:FIND <"字符串">|<字符串>
SEEK <表达式>
LOCATE [<范围>] [FOR <条件>] [WHILE<条件>]
CONTINUE
说明:FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE命令找到一个匹配记录后,可用CONTINUE命令搜索表的剩余部分来寻找其他匹配的记录。
16、COUNT
作用:统计当前表文件中符合条件的记录数。
格式:COUNT [<范围>] [FOR <条件>] [WHILE<条件>] [TO <内存变量名>]
说明:内存变量名可用除参数外的任意字符。
17、SUM
作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。
格式:SUM [<范围>] [数值<表达式>] [TO <内存变量名表>] [FOR <条件>] [WHILE<条件>]
18、AVERAGE
作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。
格式:AVERAGE [<范围>] [数值<表达式>] [TO <内存变量名表>] [FOR <条件>] [WHILE<条件>]
二、常用函数
1、数学函数
函数 用途
ABS(<数值表达式>) 绝对值,|x|
CEILING(<数值表达式>) >=自变量的最小整数
EXP(<数值表达式>) 对基E的幂,e=2.71828
FLOOR(<数值表达式>) <=自变量的最大整数
INT(<数值表达式>) 取整(舍尾)自变量
LOG(<数值表达式>) 自变量的自然对数,ln x
LOG10(<数值表达式>) 自变量的普通对数,lg x
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(<字符串表达式>,<数值表达式n>)取字符串右边部分字符,n从右边截取字符个数
3、表(.dbf)操作函数
函数 用途
BOF([<工作区号或别名>]) 查表文件开始函数
EOF([<工作区号或别名>]) 表文件结尾测试函数
RECNO([<工作区号或别名>])测试当前或指定工作区表的当前记录号
DELETED([<工作区号或别名>])记录删除测试函数
FILE(<"字符串">) 测试文件是否存在函数
DBF([<工作区号或别名>]) 检测表的文件名函数
4、日期、时间函数
函数 用途
DATE() 查系统当前日期函数
TIME([<数值表达式>]) 查系统当前时间函数
YEAR(<日期型表达式>|<日期时间型表达式>)由日期查年函数
MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数
CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数
DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数
DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数
CDOW(<日期型表达式>|<日期时间型表达式>)从日期查星期名函数
DTOC(<日期型表达式>|<日期时间型表达式>)日期转换为字符函数
CTOD(<字符串表达式>) 字符串转换为日期函数
CTOT(<字符串表达式>) 返回日期时间值函数
TTOC(<日期时间型表达式>) 返回字符值
5、显示、打印位置函数
函数 用途
ROW() 判断光标行位置函数
COL() 判断光标列位置函数
INKEY([<数值表达式>])检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间
6、其他函数
函数 用途
DISKSPACE() 返回默认磁盘驱动器中可用字节数函数
OS() 检测操作系统名称的函数
VERSION() 返回VFP版本号的函数
三、主要程序语句
1、条件判断语句
格式:(1)IF <条件>
<命令语句组>
ENDIF
说明:如果条件为真,则执行命令语句组中的各语句,否则跳过这些命令语句不执行,
而执行ENDIF后的语句。
(2)IF <条件>
<命令语句组1>
ELSE
<命令语句组2>
ENDIF
说明:如果条件为真,执行命令语句组1,否则执行命令语句组2。
(3)IF <条件1>
IF <条件2>
<命令语句组1>
ELSE
<命令语句组2>
ENDIF
...
ELSE
<命令语句组N>
ENDIF
说明:进行多重条件的嵌套选择。
(4)DO CASE
CASE <条件1>
<命令语句组1>
CASE <条件2>
<命令语句组2>
CASE <条件3>
<命令语句组3>
...
...
CASE <条件N>
<命令语句组N>
[OTHERWISE]
[<命令语句组N+1>]
ENDCASE
说明:依次判断条件,转入条件为真的命令语句组中执行。当所有条件都不成立时,若有
OTHERWISE项,则执行命令语句组N+1,否则执行ENDCASE后面的语句。
2、循环语句
格式:(1)DO WHILE <条件>
<命令语句组>
[LOOP]
<命令语句组>
[EXIT]
<命令语句组>
ENDDO
说明:判断条件是否为真,如为真就重复执行循环体中的命令语句组,直到条件为假,结束
循环。
(2)SCAN
<命令语句组>
ENDSCAN
说明:在一个表中建立一个执行命令语句组的循环,并执行对每一条记录的操作,直到表文件记录完为止。
VFP常用函数使用说明
1、数值运算函数
函数 操作例 结果
SQRT(x) 求平方根 SQRT(9) 3
INT(x) 取整数 INT(3.14) 3
ROUND(x) 四舍五入 ROUND(3.14159,4) 3.1416
MOD(x,y) 求X除以Y的余数 MOD(25,4) 1
MAX(x,y) 求X,Y中的最大值 MAX(7,8) 8
MIN(x,y) 求X,Y中的最小值 MIN(1,2,3) 1
2、字符中操作函数
函数名 操作例 结果
UPPER(S) 小写字母 UPPER(abc) ABC
LOWER(S) 大写字母 LOWER(ACD) acd
LEN(S) 求字符串的长度 LEN("中国1号") 7
AT(S1,S2) 在字符串S2,找字符串S1 AT("H","CHINA") 2
SUBSTR(S,I,N) 在S字符串中的第I个字符起取N个字符 SUBSTR('TECHNOLO',3,3) CHN
LEFT(S,N) 从字符串S左边取N个字符 LEFT("中国人",4) 中国
RIGHT(S,N) 从字符串S右边取N个字符 S=‘12345'
RIGHT(S,3) 345
SPACE(N) 生成N个空格 "合计"+SPACE(2)+"123" 合计123
TRIM(S) 消除字符串尾部空格 TRIM("姓名 ") 姓名
ALLTRI(S) 消除字符串中所有空格 ALLTRIM("李 丽") 李丽
STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符 STUFF("NOW",2,
1,"E") NEW
& 宏替换 P="G2"
USE &P USE G2
3、日期和时间函数
函数名 操作例 结果
DATE() 求当前日期 DATE() 2001/11/12
DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33am
YEAR(D) 求年份 YEAR(DATE()) 2001
MONTH(D) 求月份(数值) MONTH(DATETIME()) 11
CMONTH(D) 求月份(字符) MONTH(DATETIME()) Novenber
DAY(D) 求日期 DAY(DATE()) 12
DOW(D) 求星期几(数值) DOW(DATE()) 1
CDOW(D) 求星期几(英文) CDOW(DATE()) sunday
TIME(D) 求当前时间 TIME(DATE()) 10:20:38am
4、数据类型转换函数
函数名 操作例 结果
ASC(S) 求第一个字符串的ASCII码 ASC("what") 87
CHR(N) 求ASCII码的字符 CHR(87) w
STR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字符串转换为数值 VAL("123") 123.00
CTOD(S) 字符串转日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期转换成字符串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE()) 20021101
CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型转为日期时间型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 逻辑判断 IIF(A>0,"YES","NO") YES
5、检测函数
函数名 操作例 结果
RECNO() 检测当前记录号 RECNO() 1
RECCOUNT() 检测当前记录数 RECCOUNT() 12
BOF() 开始记录 BOF() 1
EOF() 最后记录 EOF() 12
FOUND() 返回查找结果 FOUND() .T.
ROW() 返回当前行坐标 ROW() 1
COL() 返回当前列坐标 COL() 1
SYS(N) 返回系统状态 SYS(13) 联机状
VF函数列表
2008-09-10 21:24 | (分类:默认分类)
函数在程序中能进行数据运算或类型转换的作用,在程序中起到一定的作用。下面我就一些常用的函数进行一下归类讲解。
(1)数值函数:运算结果为数值类型。常见的有
abs 绝对值函数
sqrt 平方根函数
int 取整函数,只取整数位舍去小数位
ceiling 返回大于或等于指定数值表达式的最小整数
floor 返回小于或等于指定数值表达式的最大整数
round 四舍五入函数,返回指定数值表达式在指定位置四舍五入后的结果
mod 返回两个数值表达式相除后的余数,余数的正负号与除数一致
max 计算各表达式中的值,返回最大值
min 计算各表达式中的值,返回最小值
(2)字符函数:运算结果为字符类型。常见的有
len 返回指定字符表达式值的长度,以字节为单位,一个西文字符或空格占一个
字符,一个中文字符占两个字符函数值为数值型
lower,upper 分别将指定的字符表达式转换成大写和小写字母,其它字符不变
space 返回由指定数目的空格组成的字符串
trim,ltrim,alltrim返回指定字符表达式去掉尾部、首部、首尾部空格形成的字符串
left,right 分别从指定表达式值的左端、右端取一个指定长度的子串作为函数值
substr 从指定表达式值的指定位置取指定长度的子串作为函数
at,atc 如果前字符串是后字符串的子串,测试前字符串首字符在后字符串中第几
次出现的位置,函数值为数值型,atc在测试中不区分字母大小写
stuff 从前字符串指定位置开始指定长度的字符用后字符串替换
like 比较前后两个字符串对应位置上的字符,若所有对应字符都相匹配,函数
返回值为逻辑真,否则为逻辑假,前字符串可包含通配符
(3)日期和时间函数
date 返回当前系统日期,函数值为日期型
time 以24小时制、hh:mm:ss格式返回当前系统时间,函数值为字符型
datetime 返回当前系统日期时间,函数值为日期时间型
year,month,day 分别从指定的日期或日期时间表达式中返回年份、月份、天数
hour,minute,sec分别从指定的日期时间表达式中返回小时、分钟、秒数部分
(4)类型转换函数
str 数值转换成字符串
val 字符串转换成数值
ctod 字符转换成日期
dtoc 日期转换成字符
& 替换出字符型变量的内容
(5)测试函数:函数值为逻辑型
between 判断一个表达式的值是否介于另外两个表达式的值之间
isnull 判断一个表达式的值是否为空值
empty 判断指定的表达式的运算结果是否是空值
eof
bof 测试指定的表文件中的记录指针是否处于尾标和首标
recno 测试指定的表文件中的当前记录的记录号
reccount 测试指定的表文件中的记录个数
iif 测试逻辑表达式的值,若为逻辑真,函数返回前表达式的值,否则返回后表
达式的值
deleted 测试指定的表文件中的当前记录是否有删除标记
第二种总结方式:
数值函数:
1.绝对值和符号函数
格式:ABS(<数值表达式>)
SIGN(<数值表达式>)
例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=0
2.求平方根表达式
格式:SQRT(<数值表达式>)
例如:SQRT(16)=4,它与开二分之一次方等同。
3.圆周率函数
格式:PI()
4.求整数函数
格式:INT(<数值表达式>)返回数值表达式的整数部分
CEILING(<数值表达式>)返回大于或等于表达式的最小整数
FLOOR(<数值表达式>)返回小于或等于表达式的最大整数
例如:
INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5
FLOOR(9.9)=9
5.四舍五入函数
格式:ROUND(<数值表达式1>,<数值表达式2>)
功能:返回制定表达式在制定位置四舍五入的结果
例如:
ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND(345.345,-1)=350
6.求余函数
格式:MOD(<数值表达式1>,<数值表达式2>)
例如:
MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1
求余数的规律:1.首先按照两数的绝对值求余
2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值
3.余数取表达式1的正负号
4.若两数异好号,余数在加上表达式2的值为最终的结果
7. 求最大值和最小值函数
MAX(数值表达式列表)
MIN (数值表达式列表)
例如:MAX(2,3,5)=5 MAX(‘2’,’12’,’05’)=2 MAX(‘汽车’,’飞机’,’轮船’)
字符串比较的规律:
字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。如果相等在进行第二个字母的比较,以次类推。
字符函数
1.求字符串长度函数
格式:LEN(<字符表达式>)
功能:返回制定字符表达式的长度,即所包含的字符个数。函数值为数值型
例如:X=“中文Visual FoxPro6.0” 则LEN(X)=20
2.大小写转换函数
格式:LOWER(<字符表达式>)
UPPER(<字符表达式>)
功能:LOWER将制定表达式值中的大写字母转换成小写字母,其他字符不变
UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。
例如:LOWER(‘X1y2A’)=x1y2a UPPER(‘n=1’)=N=1
3.空格字符串生成函数
格式:SPACE(<字符表达式>)
功能:返回指定数目的空格组成的字符串。
4.删除前后空格函数
格式:TRIM(<字符表达式>)
LTRIM(<字符表达式>)
ALLTRIM(<字符表达式>)
功能:TRIM():返回指定字符表达式值去掉尾部空格后形成的字符串
LTRIM():返回指定字符表达式值去掉前导空格后形成的字符串
ALLTRIM():返回指定字符表达式值去掉前导空格和尾部空格后形成的字符串。
例如:STORE SPACE(1) ”TEST” SPACE(3) TO SS
?TRIM(SS) LTRIM(SS) ALLTRIM(SS)
LEN(SS)=8,LEN(TRIM(SS))=5,LEN(LTRIM(SS))=7,LEN(ALLTRIM(SS))=4
5.取子串函数
格式:LEFT(<字符表达式>,<长度>)
RIGHT(<字符表达式>,<长度>)
SUBSTR(<字符表达式>,<起始位置>,<长度>)
功能:LEFT(): 从指定表达式值的左端取一个指定长度的子串作为函数值。
RIGHT():从指定表达式值的右端取一个指定长度的子串作为函数值。
SUBSTR():从指定表达式值的起始位置取指定长度的子串作为函数值。
例如:STORE “GOOD BYE!” TO X
LEFT(X,2)=GO,SUBSTR(X,6,2) SUBSTR(X,6)=BYBYE!,RIGHT(X,3)=YE!
6.计算子串出现次数函数
格式:OCCURS(<字符表达式1>,<字符表达式2>)
功能:返回第一个字符串在第二个字符串中出现的次数。
例如:STORE ‘abracadabra’ TO S
OCCURS(‘a’,S)=5, OCCURS(‘b’,S)=2, OCCURS(‘c’,S)=1, OCCURS(‘e’,S)=0
7.求子串位置函数
格式:AT(<字符表达式1>,<字符表达式2>,<数值表达式>)
ATC(<字符表达式1>,<字符表达式2>,<数值表达式>)
功能:验证表达式1是否是表达式2的子串,如果是,返回表达式1的首字符在表达式2中的位置,若不是,则为0
ATC()与AT()的功能类似,但比较时不区分大小写
例如: STORE”This is Visual FoxPro” TO X
AT(“fox”,X)=0,ATC(“fox”,X)=16,AT(“is”,X,3)=10,AT(“xo”,X)
8.子串替换函数
格式:STUFF( <字符表达式1>,<起始位置>,<长度>,<字符表达式2>)
功能:用<字符表达式2>的值替换<字符表达式1>中由<起始位置>和<长度>指明的一个子串。
例如:STORE ‘GOOD BYE!’ TO S1
STORE ‘MORNING’ TO S2
?STUFF(S1,6,3,S2)=GOOD MORNING!
?STUFF(S1,1,4,S2)=MORNING BYE!
9.字符替换函数
格式:CHRTRAN(<字符表达式1>,<字符表达式2>,<字符表达式3>)
功能:当第一个字符中的一个或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符中的对应字符(相同位置)替换这些字符。如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对应字符,那么第一个字符串中相匹配的各字符将会被铲除。如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多于字符被删掉。
例如:CHRTRAN(“ABACAD”,”ACD”,”X12”)=XBX1X2
CHRTRAN(“计算机ABC”,”计算机”,”电脑”)=电脑ABC
CHRTRAN(“大家好!”,”大家”,”您”)=您好!
总结:第二个表达式没有的照写,第三个表达式没有的去掉。
10.字符串匹配函数
格式:LIKE(<字符表达式1>,<字符表达式2>)
功能:比较两个字符串对应位置上的字符,若所有对应字符相匹配,函数返回逻辑真(.T.)否则返回逻辑假(.F.)
<字符表达式1>中可以包含通配符*和?。*可与任何数目的字符相匹配,?可以与任何单个字符相匹配。
例如:
STORE “abc” to x
STORE “abcd” to y
LIKE(“ab*”,x)=.T. LIKE(“ab*”,y)=.T. LIKE (x,y)=.F.
LIKE(“?b?”,x)=.T. LIKE(“ABc”,x)=.F
. 日期和时间函数
1.系统日期和时间函数:
格式:DATE():返回当前系统日期,函数值为日期型
TIME():以24小时制 、HH:MM:SS格式返回当前系统时间(字符型)
DATETIME():返回当前系统日期时间,函数值为日期时间型
2.求年份、月份、天数函数
格式:YEAR(<日期表达式>|<日期时间表达式>)
MONTH(<日期表达式>|<日期时间表达式>)
DAY(<日期表达式>|<日期时间表达式>)
3.时、分和秒函数
格式:HOUR(<日期时间表达式>)
MINUTE(<日期时间表达式>)
SEC(<日期时间表达式>)
数据类型转换函数
1.数值转换成字符串
格式:STR(<数值表达式>,<长度>,<小数位数>)
例如:STORE –123.456 TO N
STR(N,9,2)=-123.46,STR(N,6,2)=-123.5
STR(N,3)=***,STR(N,6)=-123,STR(N)=-123
2.字符串转换成字符
格式:VAL(<字符表达式>)
例如:STORE ‘-123.’ TO X,STORT ‘45’ TO Y
STORE ’A45’ TO Z
VAL(X Y)=123.45,VAL(X Z)=123.00,VAL(Z Y)=0.00
3.字符串转换成日期或日期时间
格式:CTOD(<字符表达式>)转化成日期型数据
CTOT(<字符表达式>)转化成日期时间型数据
4.日期或日期时间转化成字符串
格式:DTOC(<日期表达式>|<日期时间表达式>[,1])
TTOC(<日期时间表达式> [,1])
功能TOC()将日期型数据或日期时间数据的日期部分转化成字符串
TTOC()将日期时间数据转化成字符串
声明:对DTOC()来说,如果选项是1,则字符串的格式总是YYYYMMDD,8个字符。对TTOC()来说,如果使用选项1,则字符串格式总是YYYYMMDDHHMMSS,14个字符
例如:
STORE DATETIME() TO T
DTOC(T)=11/11/2005, DTOC(T,1)=20051111,
TTOC(T)=11/11/2005 18:54:34 PM TTOC (T,1)=20051111185434
5宏替换函数
格式 :&<字符变量>[.]
功能:替换出字符变量的内容,即去掉定界符。
例如:kk=“456”, ?&kk*100=45600
测试函数
1.值域测试函数
格式:BETWEEN(<表达式T>,<表达式L>,<表达式H>)
例如:STORE NULL TO X;STORE 100 TO Y
BETWEEN(150,Y,Y 100)=.T.
BETWEEN(90,X,Y)=NULL
2.空值(NULL值)测试函数
格式:ISNULL(<表达式>)
例如:STORE .NULL. TO X
ISNULL(X)=.T.
3“空”值测试函数
格式:EMPTY(<表达式>)
P76详细讲解
4.数据类型测试函数
格式:VARTYPE (<表达式>[,<逻辑表达式>])
功能:测试表达式的类型,返回一个大写字母,函数值为字符型
2.空值(NULL值)测试函数
格式:ISNULL(<表达式>)
3.表文件尾测试函数
格式:EOF([<工作区号>|<表别名>])
4.表文件头测试函数
格式:BOF([<工作区号>|<表别名>])
5.记录号测试函数
格式:RECNO([<工作区号>|<表别名>])
6记录个数测试函数
RECCOUNT ([<工作区号>
6.条件测试函数
格式:IIF(<逻辑表达式>,<表达式1>,<表达式2>)
功能:测试<逻辑表达式>的值,表达式逻辑若为真,函数返回<表达式1>
的值,若为逻辑假,函数返回<表达式2>的值,<表达式1>和<表达式2>表达式类型不要求相同。
例如:X=100;Y=300
IIF(X>100,X-50,X 50)=150;IIF(Y>100,Y-50,Y 50)=250
7.记录删除测试函数
格式:DELETED([<工作区号>|<表别名>])