2013-1VFP第2部分(表达式函数)
第二章VFP的数据表达式一、数据类型1.字符型字符型(Character,C
第二章 VFP的数据表达式一、数据类型1.字符型字符型(Character,C型)通常用于储存文本信息,由字母、汉字、空格、数字、符号和标点等字符组成,宽度不能超过254字节。
若超过254字节,则请改用备注型。
例如:“abc”,“计算机”,“123”,“ID18”等。
2.货币型货币型(Currency,Y型)这种类型是专为货币数据设计的数据类型,表示方法是在数字前加一个$符号。
最多只能保留到小数点后4位,超过四位则会自动四舍五入:少于四位则会自动补零。
占8个字节的空间。
例如:money=$980.45678。
3.数值型数值型(Numeric,N型)用于表示数量,由数字0~9、+或-,以及小数点组成。
数值型数据占8个字节,长度为1~20个字节。
VFP中文版采用十进制和十六进制两种格式。
例如:98.66,0xff(前面加0x表示十六进制)。
数值型数据可采用科学计数法,如“3E2”代表“3×102”,“10e-2”代表“10×10-2”。
4.整型整型(Integer,I型)用于存储不含小数部分的数值。
是一种较小的数据类型,整数型占有内存空间4个字节。
5.浮点型浮点型(Float,F型)等价于数值型类型。
VFP出于兼容性的考虑设置了这个数据类型。
6.日期型日期型(Date,D型)用于存储日期数据。
由年、月、日三部分组成,存储格式为“YYYYMMDD”。
表示范围为{^0001/01/01}到{^9999/12/31},即公元0001年1月1日到公元9999年12月31日。
其中“^”符号表示此日期格式严格遵循YMD(year,month,day)的格式,使用日期型数据时应用大括号{}括起来。
日期型数据存储长度为8个字节。
例如:mydate={^2006/10/12}表示日期是2006年10月12日,而不是2006年12月10日。
7.时间日期型时间日期型(Date Time,T型)用于记录日期时间的数据。
VF二级常用命令集函数
VFP常用函数使用说明1、数值运算函数函数操作例结果SQRT(x) 求平方根SQRT(9)3INT(x) 取整数INT(3.14)3ROUND(x) 四舍五入 ROUND(3.14159,4) 3.1416MOD(x,y) 求X除以Y的余数MOD(25,4) 1MAX(x,y) 求X,Y中的最大值MAX(7,8) 8MIN(x,y) 求X,Y中的最小值MIN(1,2,3) 12、字符中操作函数函数名操作例结果UPPER(S)小写字母UPPER(abc) ABCLOWER(S)大写字母LOWER(ACD) acdLEN(S)字符串的长度 LEN("中国1号")7AT(S1,S2)在字符串S2,找字符串S1 AT("H","CHINA") 2SUBSTR(S,I,N)在S字符串中的第I个字符起取N个字符SUBSTR('TECHNOLO',3,3) CHNLEFT(S,N)从字符串S左边取N个字符 LEFT("中国人",4)中国RIGHT(S,N)从字符串S右边取N个字符S=‘12345'RIGHT(S,3)345SPACE(N)生成N个空格 "合计"+SPACE(2)+"123" 合计123TRIM(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 G23、日期和时间函数函数名操作例结果DATE()求当前日期DATE() 2001/11/12DATETIME() 求当前日期和时间DATETIME() 2001/11/12/0:22:33amYEAR(D)求年份YEAR(DATE()) 2001MONTH(D)求月份(数值)MONTH(DATETIME()) 11CMONTH(D)求月份(字符)MONTH(DATETIME()) NovenberDAY(D)求日期DAY(DATE()) 12DOW(D)求星期几(数值)DOW(DATE())1CDOW(D)求星期几(英文) CDOW(DATE())sundayTIME(D)求当前时间TIME (DATE())10:20:38am4、数据类型转换函数函数名操作例结果ASC(S)求第一个字符串的ASCII码ASC("what" ) 87CHR(N)求ASCII码的字符 CHR(87) wSTR(R,L,D) 数值转换成字符,L为长度,D为小数位数X=3.1415STR(X,6,2) 3.14VAL(S)字符串转换为数值VAL("123") 123.00CTOD(S)字符串转日期 CTOD('11/01/2002') 11/01/2002DTOC(D)日期转换成字符串 DTOC(DATE()) 11/01/2002DTOS(D)把日期转成年月日式的字符串 DTOS(DATE()) 20021101CTOT(C)字符串转成日期时间型CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50amDTOT(D)日期型转为日期时间型DTOT(DATE())11/25/2001 00:00:01amTTOC(T)日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01amTTOD(T)日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001IIF(LE,E1,E2) 逻辑判断IIF(A>0,"YES","NO") YES5、检测函数函数名操作例结果RECNO()检测当前记录号RECNO()1RECCOUNT()检测当前记录数 RECCOUNT()12BOF()开始记录BOF()1EOF()最后记录EOF()12FOUND()返回查找结果FOUND () .T.ROW()返回当前行坐标ROW()1COL()返回当前列坐VF常用命令和程序命令一、主要命令:1、CREATE作用:建立一个新的表。
VFP表达式和运算符
⼀.表达式:表达式是vfp命令和函数的重要组成部分,是由常量、变量、函数⽤运算符连接⽽成的有意义的式⼦⼆.运算符:1.算术运算符:算术运算符⽤于进⾏算术运算,连接起来的表达式称为算术表达式,结果是⼀个数值.如下表:运算符功能+,-正负号**,^幂*,/,%乘,除,取余+,-加,减优先级从⾼到低为:**,^→*,/,%→+,-例:将(55+9×5)÷2写成vfp算术表达式.我们在命令窗⼝输⼊并执⾏下列:(55+9*5)/2 &&结果可以⼝算,是502.字符运算符:⽤于字符串连接运算,结果是⼀个新的字符串,如下表:运算符功能+将+号前后字符串连接起来组成⼀个新的字符串-删除-号前⾯字符串的尾部空格后再与右侧的字符串组成新的字符串例:在命令窗⼝输⼊执⾏以下:a="abc " &&abc后⾯有两个空格b="def " &&def后⾯有两个空格c="ghi"a+b+c &&完全连接,下⾏是运⾏结果abc def ghix=a-b-cx &&下⾏是结果abcdefghi3.⽇期运算符:⽤于进⾏⽇期运算,如下表:运算符功能+⽇期+天数得到新⽇期时间+秒数得到新时间-⽇期-⽇期得到间隔天数时间-时间得到间隔秒数⽇期运⾏符⽆优先级例1:计算⾹港回归距现在多少天.date()-{^1997.10.01} &&date()函数⽤于取得当前⽇期.例2:计算距今天1000天的⽇期.date()+10004.关系运算符:⽤于进⾏关系运算,结果是逻辑值,如下表:运算符功能>⼤于=等于<>,#,!=不等于<=⼩于等于>=⼤于等于==字符串全等⽐较$包含运算,判断左侧字符串是否是右侧字符串的⼦串例:输⼊并执⾏下列命令:a=1234 &&定义数值常量b=2345 &&定义数值常量a.t. &&关系成⽴取真值a>b &&数值⽐较.F. &&关系不成⽴,取假值x="a" &&定义字符常量y="b" &&定义字符常量x>y &&⽐较a和b字符的ASCⅡ码.f. &&a和b的ASCⅡ码分别是97和98,关系不成⽴取逻辑假值"bc"$"abcd" &&⽐较$左边的字符串是否是其右边的字符串的⼦串.T. &&是其⼦串,取逻辑真值"ac"$"abcd" &&⽐较$左边的字符串是否是其右边的字符串的⼦串.F. &&不是其⼦串,取逻辑假值"abcd"="abc" &&⽐较等号右边字符串是否是其左边字符串从⾸字符起的⼦串.T. &&是其⼦串,取逻辑真值"abcd"="bcd" &&⽐较等号右边字符串是否是其左边字符串从⾸字符起的⼦串.F. &&不是其⼦串,取逻辑假值"abcd"=="abc" &&字符串等长并完全相同⽐较.F. &&不等长取逻辑假值5.逻辑运算符:⽤于作表达式之间的逻辑运算,参加运算的表达式应有逻辑值.运算的结果是逻辑值,如下表: 运算符功能.Not.,!逻辑⾮.and.逻辑与.or.逻辑或逻辑运算符的优先级:逻辑⾮→逻辑与→逻辑或逻辑运算符的意义是:A.and.B 只有当A和B都为真时,逻辑运算的结果才为真,否则为假A.or.B A和B中有⼀个为真,结果却为真.Not.A 当A为真值时,结果为假值,当A为假值时,结果为真值.例:y=.f. &&y的值为逻辑假.Not.y.T. &&对y值取反,结果为真a=3b=9a.T.a.T. &&两边都为真,结果为真。
Visual FoxPro数据库课件:第2章 VFP表达式及应用
?“学 ”-“生”
27
27 / 59
2.4.2 常用字符型函数
➢ 1. 生成空格函数:Space(数值表达式)
利用此函数,可以产生若干个空格组成的字
符串。空格个数由数值表达式的整数值决定。
➢ 2. 删除(字符表达式中的)空格函数: 例 不Ltr能im删(<除字中符间表空达格式。>如)::删A除lltr左im端(’空︼格成︼绩︼’ ) 的函数值是’成︼绩’ Trim (<字符表达式>) 功能相同 ,都是去掉字 R数 值tri值等m(表于<达0字,式符则的表函整达数数式产值>生)应一大符个于表空或达字等式符于值串0的。,右若即端整长空数度格 A为llt0ri的m(字<符字串符。表达式>):删除两端空格
× 3.5E2.0 不能表示数值型常数3.5×102 2 2 / 59
2.1.2 字符型数据
字符型数据( C ): 能参与字符运算的数据。 由英文字母、汉字或数字等符号组成的一串
字符。半角字符占一个字节,一个汉字或全角字 符占两个字节。
字符型常数是用半角的单引号、双引号或方括号 括起来的一串字符。
2.1.4 日期型数据
日期型数据( D ): 可以表示日期值。
占8个字节。 日期型常数用一对大括号“{ }”括起来 。 其中包含年、月、日三部分内容,各部分内 容之间可以用半角的斜杠(/)、连字号(-)、 小数点(.)或空格等分隔符进行分隔。 如:{03/13/12} {^2012/03/12}
5
9
9 / 59
2.2.1 内存变量赋值 例
赋值命令为内存变量首次赋值时,就创建 了内存变量,既规定了变量名,又指定了 变量的值。所赋值的类型决定了内存变量 的数据类型。 格式使1:内<存内变存量变有量确名切>=值<的表操达作式。> 使用
第二章VFP的数据表达式一、数据类型1.字符型字符型(Character,C
第二章 VFP的数据表达式一、数据类型1.字符型字符型(Character,C型)通常用于储存文本信息,由字母、汉字、空格、数字、符号和标点等字符组成,宽度不能超过254字节。
若超过254字节,则请改用备注型。
例如:“abc”,“计算机”,“123”,“ID18”等。
2.货币型货币型(Currency,Y型)这种类型是专为货币数据设计的数据类型,表示方法是在数字前加一个$符号。
最多只能保留到小数点后4位,超过四位则会自动四舍五入:少于四位则会自动补零。
占8个字节的空间。
例如:money=$980.45678。
3.数值型数值型(Numeric,N型)用于表示数量,由数字0~9、+或-,以及小数点组成。
数值型数据占8个字节,长度为1~20个字节。
VFP中文版采用十进制和十六进制两种格式。
例如:98.66,0xff(前面加0x表示十六进制)。
数值型数据可采用科学计数法,如“3E2”代表“3×102”,“10e-2”代表“10×10-2”。
4.整型整型(Integer,I型)用于存储不含小数部分的数值。
是一种较小的数据类型,整数型占有内存空间4个字节。
5.浮点型浮点型(Float,F型)等价于数值型类型。
VFP出于兼容性的考虑设置了这个数据类型。
6.日期型日期型(Date,D型)用于存储日期数据。
由年、月、日三部分组成,存储格式为“YYYYMMDD”。
表示范围为{^0001/01/01}到{^9999/12/31},即公元0001年1月1日到公元9999年12月31日。
其中“^”符号表示此日期格式严格遵循YMD(year,month,day)的格式,使用日期型数据时应用大括号{}括起来。
日期型数据存储长度为8个字节。
例如:mydate={^2006/10/12}表示日期是2006年10月12日,而不是2006年12月10日。
7.时间日期型时间日期型(Date Time,T型)用于记录日期时间的数据。
VFP函数和操作命令
•求整函数–int (<数值表达式>) 功能:返回整数部分–Ceiling (<数值表达式>) 功能:返回大于或等于它的最小数–floor (<数值表达式>)功能:返回小于或大于它的最大数•四舍五入函数–round (<数值表达式1>,<数值表达式2>)•求字符串函数–len (<字符表达式>) 功能:返回指定字符表达式值的长度•大小写转换函数–lower (<字符表达式>) 功能:字母转成小写,字符不变–Upper (<字符表达式>)功能:字母转成大写,字符不变•空格字符串生成函数–space(<数值表达式>)功能:返回由指定数目的空格组成的字符串。
•删除前后空格函数–rtrim (<字符表达式>)功能:去掉尾部空格后形成的字符串–Ltrim (<字符表达式>)功能:去掉前导空格后形成的字符串–alltrim (<字符表达式>)功能:去掉前导和尾部空格形成的字符串•求子串函数–left (<字符表达式>,<长度>) 功能:取左边–Right (<字符表达式>,<长度>)功能:取右边–substr (<字符表达式>,<起始位置>,<长度>) 功能:从起始开始取起,作为函数值•日期和时间函数–date () 功能:返回系统当前日期,函数值:日期型–Time () 功能:以hh:mm:ss格式返回当前时间,为字符型–Datetime () 功能:返回当前日期时间,函数值:日期型•求年份、月份、天数函数(返回值:数值型)–year (<日期表达式>|<日期时间表达式>):从指定日期当中返回年份–Month (<日期表达式>|<日期时间表达式>):从指定日期当中返回月份–Day (<日期表达式>|<日期时间表达式>):从指定日期当中返回天数•时、分、秒函数(函数值:数值型)–hour (<日期时间表达式>) 功能:返回小时部分–Minute (<日期时间表达式>)功能:返回分钟部分–Sec (<日期时间表达式>)功能:返回秒数部分•数值转换成字符串–str (<数值表达式>[,<长度>[,<小数位数>]]):将<数值表达式>的值转成字符串,转换时根据需要自动四舍五入。
VFP第二章 2.4函数2.5表达式
实例:?VAL (’adg123‟) 结果:0.00
Computer Department of Nanjing Audit University
5)STR()函数 语法:STR(〈expN〉) 功能:将数值表达式的值转换成字符串。 返回值类型: C型 实例:?STR(123) 结果:“123”
说明:[,〈n〉]为可选项,表示〈expC1〉在〈expC2 〉中第n次出现的位置。 AT()函数区分大小写,ATC()函数不区分大小写。
Computer Department of Nanjing Audit University
4) 求子串函数SUBSTR
语法:SUBSTR(〈expC〉,〈expN1〉[,〈expN2〉]) 功能:取一个字符串的子串 返回值类型: C型 实例1:?SUBSTR(“计算机中心”,7,2) 结果: 中 实例2:?SUBSTR(“ABCDEFGH”,3) 结果:CDEFGH
说明: <expN1>指定子串的起始位置,<expN2>指定子串的长度 <expN2>缺省,表示从指定的起始位置到母串的末尾
Computer Department of Nanjing Audit University
6)LEFT( )求左函数 与之相反:right( )函数
语法:LEFT( 〈expC〉 ,〈expN〉) 功能:从左边第一个字符开始,返回指定数目的子串字符 返回值类型: C型 实例:?LEFT(”ABCD”,3) 结果:“ABC” 相当于:substr( ”ABCD”,1,3 )
VFP常用函数说明
VFP常用函数说明1、数学函数ABS(<数值表达式>)绝对值,|x|CEILING(<数值表达式>) >=自变量的最小整数FLOOR(<数值表达式>) <=自变量的最大整数INT(<数值表达式>)取整(舍尾)自变量EXP(<数值表达式>)对基E的幂,e=2.71828LOG(<数值表达式>)自变量的自然对数,ln xLOG10(<数值表达式>)自变量的普通对数,lg xMAX(<表达式1>,<表达式2>)两个值的最大值MIN(<表达式1>,<表达式2>)两个值的最小值MOD(<数值表达式1>,<数值表达式2>)求余数RAND([<数值表达式1>])返回伪随机数ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量SIGN(<数值表达式>)自变量的符号 1,0,-1SQRT(<数值表达式>)平方根(正根)PI() 圆周率2、字符串操作函数&<内存变量> 用于代替内存变量内容LEN(<字符串表达式>)返回字符串表达式的字符个数SPACE(<数值表达式>)生成空格LOWER(<字符串表达式>)将字符串字母转换成小写字母UPPER(<字符串表达式>)将字符串字母转换成大写字母LEFT(<字符串表达式>,<数值表达式n>)取字符串左边部分字符,n为返回的字符个数SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>])求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串RIGHT(<字符串表达式>,<数值表达式n>)取字符串右边部分字符,n从右边截取字符个数TRIM(<字符串表达式>)删除字符串尾空格LTRIM(<字符串表达式>)删除字符串左部空格RTRIM(<字符串表达式>)删除字符串右部空格ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现ATC(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])同AT,但区别大小写OCCURE(<字符串表达式>,<字符串表达式>)字串出现次数STUFF(<字符串表达式1>,<起始位置>,<长度>,<字符串表达式2> 替换部分字符串LIKE(<字符串表达式1>,<字符串表达式2> 字符串比较,可含通配符?,*CHRTRAN(<字符串表达式1>,<字符串表达式2>,<字符串表达式3>)3、日期、时间函数DATE()查系统当前日期函数TIME([<数值表达式>])查系统当前时间函数DATETIME()YEAR(<日期型表达式>|<日期时间型表达式>)由日期查年函数MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数CDOW(<日期型表达式>|<日期时间型表达式>)从日期查星期名函数HOUR(<日期时间型表达式>)查小时MINUTE(<日期时间型表达式>)查分钟SEC(<日期时间型表达式>)查秒4、类型转换函数CHR(<数值表达式>)将数值表达式转换成字符VAL(<字符串表达式>)将数字字符串转换为数字STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值表达式总长,n为小数位数DTOC(<日期型表达式>|<日期时间型表达式>)日期转换为字符函数CTOD(<字符串表达式>)字符串转换为日期函数CTOT(<字符串表达式>)返回日期时间值函数TTOC(<日期时间型表达式>)返回字符值5、测试函数EMPTY(exp) 是否空值FILE(<"字符串">)测试文件是否存在DBF([<工作区号或别名>])检测表的文件名ISNULL(表达式)是否为NULLVARTYPE|TYPE(<表达式>)检测表达式值的数据类型,C—字符;N—数值;L—逻辑;D—日期;T—时间;G—通用;O—对象;Y—货币;X—NULL;U—未定义BOF([<工作区号或别名>])查表文件开始函数EOF([<工作区号或别名>])表文件结尾测试函数RECNO([<工作区号或别名>])测试当前或指定工作区表的当前记录号DELETED([<工作区号或别名>])记录删除测试RECCOUNT( ) 记录个数FOUND( )查找结果SELECT( ) 工作区DISKSPACE()返回默认磁盘驱动器中可用字节数OS()检测操作系统名称VERSION()返回VFP版本号DBC( ) 数据库名LOCK( )加锁6、其它函数ROW()判断光标行位置函数COL()判断光标列位置函数INKEY([<数值表达式>])检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间IIF(,,)SEEK( )TAG()INLIST(,,)BETWEEN(,,)FSIZE( )TABLEREVERT( ) TABLEUPDATE( )。
第2章VFP表达式及应用
第2章VFP表达式及应用数据是程序加工处理的对象,并以某种特定的形式存在。
在VFP中,各个数据的类型可能不同,不同数据类型决定了数据不同的存储方式与运算方法。
表达式是运算符连接常数、变量和函数等构成的运算式。
表达式作为命令的重要组成部分,主要完成各种计算任务。
2.1 数据类型与常数常数是在命令或程序执行过程中保持不变的量,而变量则指其值可以变化的量。
2.1.1数值型数据数值型数据,即能参与算术运算的数据,由数字0~9、小数点与正负号组成,其数据类型用符号N表示。
数值型数据在内存中占8个字节,能表示1~20位数据,整数在-6899999999999998至6899999999999998之间无误差;能表示的小数位数为0~19,小数位数≤15位(不含符号位)无误差。
数值型常数是整数或实数,如:23、-153和123.48,也可以用科学计数法表示数值型数据,如:用2.34e+4表示2.34×104,即23400。
2.1.2字符型数据字符型数据是英文字母、汉字或数字等符号组成的一串字符,其数据类型用符号C 表示。
一个字符型数据最多可由16777184个字符组成,半角英文字符占一个字节,一个汉字或全角字符占两个字节。
字符型常数也称为字符串,是用定界符括起来的一串字符。
定界符可以是半角的单引号、双引号或方括号,必须成对使用。
如:’我是学生’、”I Study VFP”和[男]都是字符型常数。
定界符本身不作为字符型常数的内容,当某种定界符是字符串中的内容时,必须用另一种定界符作为标志,如:’老师说:”明天交作业”’和[“Windows”操作]。
字符串长度是指字符串中所含字符的个数(1个半角字符长度为1,1个汉字或全角字符长度为2)。
如:字符串常数”说:'What'”的长度为9。
2.1.3货币型数据货币型数据作为一种特殊的数值型数据,用来表示货币值。
其数据类型用符号Y表示。
货币型常数是在数值前加货币符号$,如:$12.34。
VFP第2部分(表达式函数)
4)
格式: AT(<字符串表达式1>,<字符串表达 式2> [,<数值表达式>])
功能:如果<字符串表达式1>是<字符串表达式2>的 子串,则返回<字符串表达式1>在<字符串表达式 2>中的起始位置;若不是子串,则返回0。AT()的 函数值为数值型,ATC()与AT()功能类似,但在子
数>
间若干秒前的日期时间
<日期时间1>- < 数值型。两个指定日期时
日期时间2>
ቤተ መጻሕፍቲ ባይዱ
间相差的秒数
【例】日期和日期时间表达式
d1= {^2008-09-01}+2 d2= {^2008-09-01}-2 ? d1-d2 4
(4)关系表达式
关系表达式的运算结果 为逻辑型常量。关系成立结 果 为 ( .T. ) ; 反 之 , 结 果 为(.F .)。
主窗口显示: 11
x=" XSDA" Use &x.dbf
&& 打开数据表XSDA.dbf
y= " list memory "
&y like a* A= " 457 "
主窗口显示: A开头的内存变量
? " abc&a.457 ", " abc&abc "
主窗口显示: abc457457 abc&abc
三、 日期时间函数
1)系统日期和系统时间函数 格式: DATE()
TIME() DATETIME()
VFP讲稿(表达式)
Insert键的使用方法:用INSERT键切换,如ab!cd !为光标,再插入模式下,输入“ach”,会变为abachcd.在覆盖模式下,输入“ach”,变为abachVisual FoxPro讲稿第一部分VFP基础Ⅲ表达式一、算数运算符与数值表达式(见P56)A=5B=4C=61+(2*C^2/8 % 5-3)-8+4*A % 2^B/4*(B^(1/2)+1)●运算符与优先级(见表2.2) 先平方后乘除余再加减?2**3与?2^3是一样的●无论有多少层括号,都只能使用圆括号。
●算数表达式运算的结果是数值。
二、字符串运算符与字符表达式空格也是字符●字符串相加表达式。
?[1234 ]+[45678] 1234 45678●字符串相减表达式。
? [1234 ]-[45678] 123445678 (只对减号左端的空格有影响,移到下一个字符串结尾的后面,对其他无影响)●字符表达式运算的结果是字符串。
●数据类型不一样不能混合运算●?12+20 32 ?[12]+[20] 1220●只有货币型和数值型可以一起运算。
货币型精度高,数值型精度低。
按货币型计算。
●?$12+$20 32.0000 ?$12+20 32.0000三、日期时间运算符与日期时间表达式●表达式中的运算项应符合表2.3中的规定:●表达式的运算结果可以是数值型、或日期型、或日期时间型。
两个日期型只能相减,结果是数值型。
两个日期时间型只能相减,结果是数值型。
日期型可与数值型相加、或相减,结果是日期型。
日期时间型可与数值型相加、或相减,结果是日期时间型。
四、关系运算符与关系表达式(简单逻辑表达式)1. 关系运算符见P58 不等于<>、#、!= .字符串包含测试$,字符串精确比较双等号==●关系运算符两边的表达式的类型必须相同。
●运算符$仅用于字符型表达式的比较。
●?[大]$[伟大中国] 只要左右有一个或以上字符相同则为.T.●运算符==主要用于字符型表达式的精确比较。
VFP表达式、函数的使用1
《计算机应用基础》期末考试准考证号: 11216101110+学号后4位上机内容:第一部分:函数一、数学函数1、INT( )功能:取整。
例如:?INT(3.4) 32、……第二部分:VFP表达式、函数和命令的使用一、实验目的1、掌握VFP各类型数据的运算符和表达式,能正确由数学表达式转换为VFP 表达式;2、掌握常用VFP函数的功能和使用方法;3、知道VFP命令的一般使用格式,掌握命令的书写规则,了解命令各子句的正确书写格式;二、实验操作内容与步骤1、VFP运算符VFP中运算符分为数值运算符、字符运算符、日期运算符、逻辑运算符和关系运算符,数值运算符以数值数据为操作对象且最终运算结果也是数值数据;字符运算符以字符数据为操作对象而其运算结果可以是字符数据,也可以是逻辑数据;日期运算符以日期数据作为操作对象,运算结果可以是日期数据,也可以是数值数据;逻辑运算符以逻辑数据为操作对象,且其运算结果最终也是逻辑数据;关系运算符以数值、字符、日期、货币等为操作对象,运算最终结果只能是逻辑数据。
数值运算符有:(),^或**,*,,/,+,-,%字符运算符有:+,-,日期运算符有:+,-关系运算符有:<,>,<=,>=,<>或#,=,==,$逻辑运算符有: .NOT.或!,.AND.,.OR.2、VFP表达式(1)数值表达式?2004/4-99^0.5+30%2 491.05a=5b=4c=3n=(a+b+c)/2?”S=”,(n*(n-a)*(n-b)*(n-c))^0.5 6?54%7 5 125.00?5^3(2)字符表达式C1=”CHINA ” &&(注意有四个空格)C2=”中国”C3=”610041 ” &&(注意有四个空格)C4=”2004”?C1+C2 CHINA 中国?C3+C4 6100412004?C1-C2 CHINA中国?C2$C1 .F.?”0”$C3.T.(3)日期表达式?DATE()03/25/11D1=DATE()+20D2={^2004-02-26}D3=DATE-10?D1-DATE() 20?D1+30 05/14/11?D2-D1 -2604?D2>D1 .F.(4)关系表达式?a=b .F.?a>b .T.?a+b>=b+c .T.?c1>C2 .F.?d2<D1 .T.(5)逻辑表达式L1=.T.L2=.F.?.NOT.L1 .F.?L1.Or.L2 .T.?1>2.AND.L1 .F.?DATE()={^2004-02-25}.OR.L1.ANDL2.F.3、常用函数(1)数值函数①、绝对值函数——ABS()?ABS(7-2*4),ABS(-3^4),ABS(200-45) 1 81.00 155②、指数函数——EXP()?EXP(0),EXP(1),EXP(-1) 1.00 2.72 0.37③、取整函数——INT()?INT(100/3),INT(1/6),INT(2**2)33 0 4④、平方根函数——SQRT()?SQRT(9),SQRT(60) 3.00 7.75⑤、最大值和最小值函数——MAX()和MIN()?MAX(12,30,40,90),MIN(1,0,-20,45/9) 90 1⑥、求余函数——MOD()?MOD(4,2),MOD(9,2),MOD(20,-3),MOD(-3,20) 0 1 -1 17 MOD(A,B)的功能说明:当A*B>0时,MOD(A,B)=B/|B|*MOD(|A|,|B|)当A*B<0时,MOD(A,B)=B/|B|*(|B|-MOD(|A|,|B|))⑦、圆周率函数——PI()?PI() 3.14(2)字符函数①、求子串位置函数——AT()、ATC()、AT-C()和ATCC()?AT(”FOX”,”Visual FOXPro”),ATC(‘FOX’,“FoxPRO”)8 1 ?ATCC(‘技术’,“发展高新技术产业”) 5②、取子串函数——SUBSTR()和SUBSTRC()?SUBS(“我是中国人”,3,4),SUBSTRC(“我是中国人”,2,2)中国是是③、测试字符串长度函数——LEN()和LENC()?LEN(“中国人民”),LENC(“中国人民”)8 4④、英文字母大小写转换函数——LOWER()和UPPER()?LOWER(“ABCdFG”),UPPER(“dir foxpro”)abcdefgDIR FOXPRO(3)日期时间函数——DATE()、YEAR()、MONTH()和DAY()?DATE(),YEAR(DATE()),MONTH(DATE()),DAY(DATE())03/25/11 2011 3 25(4)转换函数①、ASCII码值与字符转换函数——ASC()和CHR()?ASC“A”),ASC“a“) A a?CHR(65),CHR(97)65 97②、日期形式字符数据与日期数据的转换——CTOD()和DTOC()?CTOD(“03-08-04“)+10,”今天是“+DTOC(DATE())03/18/04 今天是03/25/11③、数值与字符数据的转换函数——STR()和VAL()?STR(12345),VAL(“12345“)12345 12345.004、VFP命令的使用方法(1)、命令名称必须位于命令行的开始位置,其余子句间的位置可以任意,子句间用空格分隔,关键词和命令可以缩写为前四字母组成,大小写等效;(2)、命令中的标点符号必须是英文半角状态下的标点符号;(3)、屏幕行输入不完命令行可以断行于下一行输入,但上行行尾必须使用分号“;“。
VF中表达式、函数和表报告
表达式、函数和表一、实验目的1.练习设置默认目录2.掌握变量和常量的使用方法,了解内存变量和数组的特点3.熟悉掌握常用函数的功能和使用方法4.理解Visual FoxPro的各种表达式二、内容与设计思想1.设置默认目录2.常量的写法3.变量的定义和赋值4.常用函数的用法5.表达式计算三、使用环境Windos XP操作系统;Visual ProFox 6.0四、核心代码及调试过程(验证需要截图)1.在计算机硬盘上建立自己的文件夹,文件夹名以学号+姓名拼音首字母缩写命名,例如刘毅同学(学号20030009):建立文件夹20030009LY。
并设定此文件夹为VF的默认目录。
(截图)2.判断表达式的正误,写出正确的表达式并上机验证1)123+456 √5792)123+”456”×3)“123”+”456”√1234564)5>3>1 ×5)“ABC”+”456”√ABC4566)“ABC”-”456”√ABC4567){^2006/06/20}+{^2006/06/12} ×3.写出下列命令的作用或者显示结果,并上机验证1)x=123?type(“x”) 显示值或者提示信息为: Nx=”123”?type(“x”) 显示值或者提示信息为: Cx=.T.?type(“x”) 显示值或者提示信息为: Lx={^2006-06-10}?type(“x”) 显示值或者提示信息为: Dx={“^2006-06-10”}?type(“x”) 显示值或者提示信息为:日期/日期时间中包含了非法字符x=”^2006-06-10”?type(“x”) 显示值或者提示信息为: CSTORE 123**2-10 TO x,y,z?”x=”,x,”y=”,y,”z=”,z 显示值为:x=15119.00 y=15119.00 z=15119.002)Dimension a(3)a(1)=123store [I’m a boy.] to a(2)?a(0) 显示值或者提示信息为:无效的下标引用?a(1) 显示值或者提示信息为: 123?a(2) 显示值或者提示信息为: I’m a boy.?a(3) 显示值或者提示信息为: .F.4.写出下列函数的作用、返回值并上机验证1)数值型函数? INT(123.456),INT(-123.456)返回<数值表达式>的整数部分123 -123?ROUND(123.456,1),ROUND(-123.456,-1)<数值表达式1>四舍五入,保留<数值表达式2>位小数123.5 -120?MOD(8.7,3),SQRT(144)取模,即返回<数值表达式1>除以<数值表达式2>所得的余数 2.7 12.002)字符处理函数?SUBSTR(“VISUAL FOXPRO”,3,5),SUBSTR(“VISUAL FOXPRO”,3)返回<字符表达式>中第<数值表达式1>位起的长度为<数值表达式2>的子串SUAL SUAL FOXPRO?AT(“O”,”FOXPRO”,1),AT(“O”,”FOXPRO”,2),AT(“O”,”FOXPRO”)返回字符串<字符表达式1>在<字符表达式2>中第<数值表达式>次出现的位置2 6 2?V AL(“3.14”), V AL(“3.14E2”), V AL(“3.14E”), V AL(“E3.14”)将字符串转换为数值 3.14 314.00 3.14 0.00?STR(3.1415,5,1), STR(3.1415,5), STR(3.1415), STR(3.1415,5,5)将数值<数值表达式1>转换为长度为<数值表达式2>位,具有<数值表达式3>位小数的字符串 3.1 3 3 3.142?LEN(“ ABCD “), LEN(alltrim(“ ABCD “))返回字符串的长度 6 43)日期处理函数?CTOD(“01/1/99”)将<字符表达式>转换为日期01/01/99? CTOD(01/1/99)函数值无效X=DATE()?DTOC(X),DTOS(X),TYPE(…DTOS(X)‟)将<日期表达式>转换为字符串08/17/12 2013817 C?YEAR(X), TYPE(…YEAR(X)‟)返回年份2013 N5.计算下列表达式,写出计算过程,写出表达式的类型并上机验证1)DTOS(DATE())+SPACE(3)+DTOC(DATE()) =20130817 08/17/13 算术表达式2)YEAR({^2006/06/10})>2006=.F. 关系表达式3)SUBSTR(“VISUAL FOXPRO”,8)=”FOX” =.T. 关系表达式4)(1.1+2)^3>66 OR (1.1+2)^3<66 AND “AB”$”ABCD” =.T. 逻辑表达式5)“数据库”>”自由表” =.F. 关系表达式6.思考与操作1)单个的常量、变量或者是函数是否是表达式?否,表达式是常量、变量或者是函数和运算符号的组合。
Foxpro基本命令与函数
Foxpro基本命令与函数命令中用到的范围:ALL:命令对表中所有记录起作用,即执行时从首记录到末记录,最记录指针停在数据库的末尾。
NEXT<expN> 命令作用于从当前记录开始到当前记录后<expN>条记录为止的范围内的记录,最后记录指针指向作用范围内的最后一条记录处。
NEXT 1表示仅作用于当前记录。
Record<expN>命令作用于记录号为<expN>的记录。
TEST 命令作用范围从当前记录开始到表的最后一个记录为止命令中的FOR子句只作用于满足条件的记录。
一、基本命令1. 打开和关闭数据表USE [<数据表名>] 当省略选项时为关闭当前数据表CLOSE ALL 关闭所有数据表2. 选择当前工作区SELECT <工作区号|数据表名|0>功能:选择当前工作区。
可以直接选择工作区号,也可通过指定其中已经打开的数据表别名来指定工作区。
SELECT 0 是选择当前未使用的最低编号的工作区3. 增加记录APPEND BLANK 在当前表的尾部追加一个空白记录INSERT BLANK 在当前表的当前记录之后插入一条空白记录INSERT BLANK BEFORE 在当前表的当前记录之前插入一条空白记录注意:在表建立索引后,INSERT的功能与APPEND相同4. 替换字段的值REPLACE [范围] <字段1> WITH <表达式1>[, <字段2> WITH <表达式2>, ...<字段n> WITH <表达式n>] [FOR <expL>]功能:计算表达式的值,并填入指定字段,当范围和条件选项省略时只对当前记录操作。
5. 删除记录DELETE [范围] [FOR 条件]功能:对记录加删除标记(即逻辑删除),当范围和条件选项省略时只对当前记录操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、 日期时间函数
1)系统日期和系统时间函数 格式: DATE()
TIME()
DATETIME()
字符型
2)求年份、月份和天数函数 格式:
返回值4位
YEAR(<日期表达式>|<日期时间表达式>) MONTH(<日期表达式>|<日期时间表达式>) DAY(<日期表达式>|<日期时间表达式>)
四、数据类型转换函数
仔细体会教科书P35【例2-10】
【例2-10】设计一表单,要求能输入一个3位数, 并逆序显示(如输入756,则显示657)。表单设计 界面如图2-22所示,运行结果如图2-23所示。
①设计如图2-22所示表单,文本框text1的value属性的初值为0。 ②命令按钮“逆序显示”的“click”事件代码如下: x=thisform.text1.value x1= INT(x/100) x2= INT(MOD(x,100)/10) x3= x%10 y=x1+10*x2+100*x3 bel2.caption="结果为:"+STR(y,3)
“连接(+)”命令按钮的“Click”事件代码: c1=ALLTRIM(Thisform.Text1.Value) c2=ALLTRIM(Thisform.Text2.Value) bel3.caption= c1+" "+ c2 + c1 “连接(-)”命令按钮的“Click”事件代码: c1=ALLTRIM(Thisform.Text1.Value) c2=ALLTRIM(Thisform.Text2.Value) bel4.caption= c1+" "- c2 + c1
STR(<数值型表达式>[,<长度>,[,<小数位数>]])
【例】STR()函数的使用。
P=-348.387 STR(P,9,2) STR(P,6,2) STR(P,3) STR(P,6) STR(P) STR(P,10,4)
逻辑型数据比较时,.T.比.F.大。 日期型和日期时间型数据进行比较
时,越新的日期或时间越大。
字符型数据(字符串)比较 P32的〖温馨提示〗
当字符串比较时,可用命令SET EXACT ON/OFF来设置“=”是 否为精确比较。 在非精确比较(set exact off默认状态)时,在关系表达式
第二讲
要点:
程序设计初步(2)
掌握表达式、函数的基本用法
编写程序的基本元素
表单
命令
标签
√ 常量
√ 变量
表达式
函数
√ 对象
文本框
命令按钮 ……
表达式
运算符及表达式
运算符是在VFP中用来进行
运算的符号。 表达式是由数据、数据存储 容器和运算符组成的运算式。
在VFP系统中根据不同的运算符及
表达式结果的不同,表达式可以分为
(3)日期表达式或日期时间表达式
日期和日期时间运算符分为
“+”和“-”两种,其作用分别是 在日期数据上增加或减少天数,
在日期时间数据上增加或减少秒
数。
注意:日期型不能和日期型数据相加
格式 <日期>+<天数>
结果及类型 日期型。指定日期若干天 后的日期
<天数> + <日期> 日期型。指定日期若干天 后的日期 <日期>-<天数> 日期型。指定日期若干天 前的日期
1)字符串转换为数值函数 格式: VAL(<数字字符串>)
【例】VAL()函数的使用。 VAL("X12.8"),VAL("-35.875"),VAL("3A.79") 0.00 -35.88 3.00 3218.00 VAL(”32”+”18”) 32.00 VAL(”32+18”)
2)数值转换成字符串函数 格式:
【修改例2-4】设计并运行如图所示的表单,体会 运算结果。表单分别有1个标签、3个文本框、1个 命令按钮,其caption属性如图所示。
文本框默认的值为字符型,alltrim()是 一个函数,功能是去掉文本框中前后空 格,,不删除串中间的空格
“计算”命令按钮的“Click”事件代码 : A=alltrim(thisform.text1.value) B=thisform.text2.value thisform.text3.value=A$B
1)求字符串长度函数 格式: LEN(<字符串表达式>) 2)生成空格函数
格式: SPACE(<数值型表达式>) 【例】LEN(SPACE(8)-SPACE(3))
11
3)删除字符串前后空格函数 删除后面的空格 格式:
删除前面的 空格
[R]TRIM(<字符串表达式>) LTRIM(<字符串表达式>) 删除前后
以下五种: 1、算术表达式 2、字符表达式 3、日期表达式和日期时间表达式 4、关系表达式
5、逻辑表达式
1.常见的表达式 (1)算术表达式 算术表达式的运算结果是数 值型常数。
算术运算符:
特别注意 符号的变化
( ) 分组括号 **或^ 乘方 % 取模(除法的余数)
*、/ 乘、除
+、 - 加、减
仔细体会教科书P25【例2-3】
3)四舍五入函数 格式: 位置: -2
-1
4 8 6 . 7 3 5
0 1 2 3
ROUND(<数值表达式1>,<数值表达式2>)
对<数值表达式2>+1位四舍五入
【例】ROUND()函数的使用。
x=486.735
ROUND(x,4-2), ROUND(x,1), ROUND(x,0), ROUND(x,-1),ROUND(X,-2)
关系表达式的运算结果 为逻辑型常量。关系成立结 果为(.T.);反之,结果
为(.F .)。
关系运算符:
< 小于
> 大于
=等于
<= 小于或等于 >= 大于或等于
<> 、!= 、# 不等于 == 完全等于 (注:只适用于字符型)
各种类型数据的比较规则如下:
数值型和货币型数据根据其代数
值的大小进行比较。
(2)字符表达式 字符表达式运算的结果是 字符型常数或逻辑型常数。
字符运算符:
$ 包含运算 逻辑型常数 字符型常数
+ 连接运算
- 连接运算
串1$串2
“$”运算实质上是比较两个串的包含关系, 其作用是比较、判断串1 是否为串2的子串,如果 串1是串2的子串,运算结果为“真”,否则为 “假”。
所谓子串,如果串1中所有字符均包含在串2中、 且与串1中排列方式与顺序完全一致,则称串1为 串2的子串。
3 -2 2 -3
38%5,38%-5,-38%5,-38%-5
3 -2 2 -3
-8 7 -8 5-5 -38 -38 -5 38 -40 -35 40 -3 -2 2
【例】将一个3位整数X的百位数字和个位数字 取出来。
X的百位数字:
X1=INT(X/100) X的个位数字:
X2=MOD(X,10)
空格
ALLTRIM(<字符串表达式>)
4)求子串位置函数
格式: AT(<字符串表达式1>,<字符串表达式 2> [,<数值表达式>])
5)取子串函数
格式:
LEFT(<字符串表达式>,<数值表达式>) RIGHT(<字符串表达式>,<数值表达式>) SUBSTR(<字符串表达式>,<起始位置> [, <数值表达式>])
【例2-11】设计并运行如图2-24所示表单,体会表单运行结果。 表单分别有4个标签、1个命令按钮,其caption属性如图2-24所 示;3个文本框。其功能是能在文本框text1中输入一字符串,根 据文本框text2和text3中输入的数值,取出子串,运行结果如图 2-25所示。
“取子串”命令按钮的“Click”事件代码为: C=alltrim(thisform.text1.value) N1=thisform.text2.value N2=thisform.text3.value bel4.caption= substr(c,n1,n2)
6)宏替换函数
格式:&<字符型内存变量> [.]
分界符
【修改例2-12】表单界面如图2-26所示,体会运算 结果。
命令按钮“计算”的“click”事件代码如下: x1=thisform.text1.value x2=thisform.text3.value fh=alltrim(thisform.text2.value) y= x1&fh.x2 thisform.text4.value=y
<日期1>- <日期2> 数值型。两个指定日期相 差的天数
格式
<日期时间>&。指定日期时间若 干秒后的日期时间 <秒数>+<日期时间> 日期时间型。指定日期时间若 干秒后的日期时间 <日期时间>- <秒数> 日期时间型。指定日期时间若 干秒前的日期时间 <日期时间1>- <日期 数值型。两个指定日期时间相 时间2> 差的秒数
486.74 486.7 487 490 500
4)求平方根函数 格式:SQRT( <数值表达式> ) 5)随机函数