470 likes | 630 Views
第二章 VFP 语言基础知识. 第二章 VFP 语言基础. 主要内容 :. 2.1 数据类型. 2.2 数据存储. 2.3 运算符和表达式. 2.4 函数. 2.1 数据类型. 1. 字符型数据. *7. 浮点型数据. 2. 数值型数据. *8. 双精度符型数据. 3. 逻辑型数据. *9. 整型数据. 4. 日期型数据. *10. 货币型数据. 5. 备注型数据. *11. 日期时间型数据. 6. 通用型数据. 1 、字符型. 字符型( Character) 数据描述不具有计算能力的文字数据类型。
E N D
第二章 VFP语言基础知识
第二章 VFP语言基础 主要内容: 2.1 数据类型 2.2 数据存储 2.3 运算符和表达式 2.4 函数
2.1 数据类型 1.字符型数据 *7.浮点型数据 2.数值型数据 *8.双精度符型数据 3.逻辑型数据 *9.整型数据 4.日期型数据 *10.货币型数据 5.备注型数据 *11.日期时间型数据 6.通用型数据
1、字符型 字符型(Character)数据描述不具有计算能力的文字数据类型。 字符型数据包括汉字、英文字符、数字字符、空格及其他专用符号。 长度范围是0---254个字符。
2、数值型 数值型数据(Numeber)是描述数量的数据类型。由数字(0-9)、小数点和正负号组成。最大长度为20位。 例:18.5 6789.345 3、日期型 日期型(Date)数据是用于表示日期的,默认格式为{^yyyy-mm-dd}来表示。长度固定为8位。 例:{^2005-8-26} 、{^1998-04-05 10:00:00 am}
4、逻辑型 逻辑型数据 (Logic)是描述客观事物真假的数据,用于表示逻辑判断结果的。它只有两类值:真(.t.)和(.f.)假。 长度固定为1。 5、备注型 备注型(Memo)数据用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。长度固定为4位。 只用于数据表中的字段类型的定义。
6、通用型 通用型(General)数据可以是电子表格、文档、图片等。它只用于数据表中的字段类型的定义。长度固定为4。
2.2数据存储 VFP允许使用常量、变量、数组、记录和对象来存储数据,它们也被称为存储数据的容器. 2.2.1 常量(Constants) 2.2.2 内存变量(Variables) 2.2.3 字段(Fields) 2.2.4 数组(Arrays)
2.2.1 常量 常量是指在数据处理过程中其值保持不变的量。包括: 数值型常量, 字符型常量, 逻辑型常量, 日期型常量. 1.数值型常量 包括整数和小数在内的数值。 例: 123.5 0.9E+6
2.2.1 常量 2.字符型常量 字符型数据使用时必须用定界符双引号或单引号或方扩号括起来 例:“王小力”‘abc’ [232]是字符型数据 而 姓名,xy,123 不是字符型数据。 思考:以下表达式的结果? 1. ?12+13 2. ?“12”+“13”
2.2.1 常量 3.日期常量 例: {^1999-09-08} Ctod(“09/08/99”) Set century on/off 功能:显示4位/2位年份。 Set date ymd 功能:按yy/mm/dd格式显示日期. Set date amer 功能: 按月/日/年格式显示日期.
2.2.1 常量 4.逻辑型常量 真(.t.) 假 (.f.) 思考: 123.5 “abcde” .t. .f. {^1998-04-05} {^1998-04-05 10:00:00}
2.2.2 内存变量 数值型内存变量 字符型内存变量 逻辑型内存变量 日期型内存变量 常用的内存变量类型有:
2.2.2 内存变量 1.内存变量的命名 (1)由汉字、字母、数字、下划线组成,而且 必须以汉字、字母或下划线开头。 (2)长度最多128个字符。(一个汉字占2个字节) (3)不能使用VFP的保留字。 例1:在下列字符串中,不符合VFP规定的、非法的 变量名是( ) A、GZINPUT2 B、A_SK97 C、4AK D、姓名
2.2.2 内存变量 例2:在下列字符串中,符合VFP规定的、合法的变量名是( ) A、FE_1234 B、FIND C 、25_ABCD D、 PS:12 2.内存变量的建立 给内存变量赋值有 STORE 和 = 两个命令. 例:STORE 0 TO A1,A2,A3 A1=15 A2=16 ?A1+A2+A3
2.2.2 内存变量 注意: 一行只能写一条命令。写完一条命令后按回车键来确认。 ?可以显示后边表达式的结果。 3.显示内存变量 List/display memory [like<通配符>] 例: W1=“123” W2=5 X1=4 W3=.f. List memory like W*
2.2.2 内存变量 4.释放内存变量 (1)clear memory (2)release all [like<通配符>] /except<通配符>] 作用:释放所有内存变量或指定的内存变量。 例:release all like W* List memory like w*
2.2.3 字段 学生表 在上表中,学号、姓名、性别等均是字段变量。
2.2.3 字段 常用的字段变量类型有: 数值型、字符型、逻辑型(1)、日期型(8)、备注型(4)和通用型(4)等。 课堂练习: 1.在VFP中,以下说法不正确的是( ) A、字符型字段中可以存放空格 B、日期型字段中专门存放日期数据 C、备注型字段中可以一个字都不放 D、逻辑型字段中可以存放数值 2.字段为数值型字段,其宽度为6,则其小数宽度最多可定义为( ) A、2 B、8 C、4 D、6
2.2.4 数组 数组: 是内存中连续的一片存储区域,由一组变量组成。每个数组元素通过数组名及相应的下标被引用,相当于一个一般的内存变量。 通过赋值语句可以为各个元素分别赋值,且赋值的类型可以不同。 数组的定义: dimension<array1>(<expn1>[,<expn2>])[,<array2>(<expn3>[,<expn4>])]… 功能:定义一个或若干个一维或二维数组。
2.2.4 数组 例:dime a(3) dime b(2,3),c[5] a(1)=123 a(2)=234 ?a(1) ?a(2) ?a(3) b=12(数组的各个元素值均为12) b(2,2)=8(相当于b(5)=8)
2.3 表达式 1. 数值表达式 2. 字符表达式 3. 日期表达式 4. 关系表达式 5. 逻辑表达式
2.3.1 数值表达式 1、算术表达式 运算符号:+ - * / **或^ %(求余) 例: ? 2**3 ? 12+45 ? 12%5 ? (2*3-4)/2
2.3.2 字符表达式 2、字符表达式 (1)+:联接,联接两个字符型数据 例: ?“AB”+”CD” (2)-:将前边字符串尾部空格压缩到后边字符串的尾部 例: ?“ab ” – “cd” ?len(“ab ” – “cd”)
2.3.3日期表达式 3、日期表达式 (1)+ 是在已给的日期上再加天数 ?{^1998-10-10}+3 例: 思考: ?{^1998-11-04}+4 (2)- 是计算已给的两个日期相差的天数 例: ?{^1998-10-15}-{^1998-10-10} 思考: ?{^1999-10-17}-{^1999-10-09}
2.3.4关系表达式 4、关系表达式 < 小于 <=小于等于 > 大于 >=大于等于 =等于 ==精确比较 <>或#或 !=不等 ?5<8 ?4+6<=10 ?“ABC”==“AB” ?ABC”=“AB” ?[abc]$[this abc] $查看一个字符串是否在另一个字符串中。 注意:关系表达式结果肯定为逻辑值。
2.3.5逻辑表达式 5、逻辑表达式 经验: 与运算:全真为真; 或运算:全假为假; 非运算:真为假,假为真; 例1: ?3+5>6.and.4+7<10 ?3+5>6.and.4+7>10 ?3+5<6.and.4+7<10 ?3+5<6.and.4+7>10
2.3.5逻辑表达式 例2: ?3+5>6.or.4+7<10 ?3+5>6.or.4+7>10 ?3+5<6.or.4+7<10 ?3+5<6.or.4+7>10 运算符的优先级: 括号 算术运算符 字符串运算符 关系运算符 逻辑运算符(not and or) 例3: ?.not.3+5>6 ?.not.3+5<6
2.4系统函数 2.4.1 数值处理函数 2.4.2 字符处理函数 2.4.3 日期和时间处理函数 2.4.4 数据转换函数 2.4.5 其他常用函数
2.4.1数值处理函数 一.数值处理函数 1.取整函数 格式:int(数值表达式) 功能:返回数据表达式的整数部分。 例:?int(4.98) 结果为4 2.四舍五入函数 格式:ROUND(<数值表达式1>,<数值表达式2>) 功能:依照expn2的值,对expn1四舍五入 例:?round(35.865,2)结果为 35.87 ?round(135.865,-2)结果为100
2.4.1数值处理函数 3.取绝对值函数 格式:ABS(<数值表达式>) 功能:返回数值表达式的绝对值。 例: ?abs(-25) 结果为25 4.求最大值函数 格式:MAX( <expR1>,<expR2> [expR3>] …) 功能:返回几个数值表达式中最大的值。 例:?max(-30,40,20)结果为:40 5.求最小值函数 格式:Min( <expR1>,<expR2> [expR3>] …) 功能:返回几个数值表达式中最小的值。 例:?min(-30,40,20)结果为:-30
2.4.1数值处理函数 6.求平方根函数 格式:SQRT(expn) 功能:返回expn的算术平方根值。 例:?sqrt(36)结果为6 7.求自然对数函数 格式:log(expn) 功能:求expn的自然对数值. 例:?log(32.78)结果为:3.49 8.求幂函数 格式:exp(expn) 作用:求expn对于e的幂的值。
2.4.1数值处理函数 9.取模函数 格式:mod(expn1,expn2) 功能:求expn1除以expn2的余数 例:?mod(15,4)结果为:3 注:当expn1,expn2异号时,两数相除所得余数,先与被除数同号,再加上除数的值即可.
2.4.2字符处理函数 二.字符处理函数 1.替换 格式:&expc 功能:替换一个字符型变量的内容,即&的值是变量中的字符串。 例: X=“23” ?12+&x 结果为35 2.求字符串长度函数 格式:LEN(<expC>) 功能:计算参数字符串的长度,结果为数值型。
2.4.2字符处理函数 3.生成空格函数 格式:space(expn) 功能:产生由expn指定数目的空格,结果为字符型。 例:?“ab”+space(3)+ “cd”结果为ab cd 4.字符串转换成小写字母函数 格式:LOWER( <expC> ) 功能:将字符表达式中的大写字母转换成小写字母。 例:?Lower(“ViaFb”) 结果为:“viafb” 5.字符串转换成大写字母函数 格式:upper( <expC> ) 功能:将字符表达式中的小写字母转换成大写字母。 例:? upper(“ViaFb”) 结果为:“VIAFB”
2.4.2字符处理函数 6.删除字符串尾部的空格函数 格式:TRIM( <expC> ) 功能:删除<expC> 尾部空白字符与RTRIM()完全相同。 例:x=[abc ] ?len(trim(x))结果为:3 7.删除字符串左边空格函数 格式:LTRIM( <expC> ) 功能:删除<expC> 左边空白字符。 例:x=[ abc] ?len(ltrim(x))结果为:3
2.4.2字符处理函数 8.删除字符串两边空格函数 格式:ALLTRIM( <expC> ) 功能:删除<expC> 两边空白字符。 例:x=[ abc ] ?len(ALLTRIM(x))结果为:3 9.取左边子字符串函数 格式:LEFT(expc,expn) 例:?left(“王小力”,2)结果为“王” 10.取右边子字符串函数 格式:right(expc,expn) 例:?right(“王小力”,2)结果为“力”
2.4.2字符处理函数 11.取子字符串函数 格式:SUBSTR(expC, expN1,expn2) 功能:从字符串expC后位置expN1开始,截取expN2个字符。如果没有expN2,则会截至末尾。 例:?substr(“王小力”,3,2)结果为“小” 12.子字符串位置测试函数 格式:AT(expC1 ,expC2 [,<expN>] ) 功能:在expC2 中由左向右寻找第一次出现的expC1,然后以整数值返回其出现的位置。如果未出现返回0;加入<expN>参数,则寻找 第<expN>次出现的位置。
2.4.3日期和时间处理函数 例:?At(“is”, “thaisbiscis”)结果为:4 ?At(“is”, “thaisbiscis”,2)结果为:7 三.日期和时间处理函数 1、date( ) 作用:返回系统当前日期。 2、time( ) 作用:返回系统当前时间。 3、datetime( ) 作用:返回系统当前日期和时间。
2.4.3日期和时间处理函数 4.day(expd) 作用:返回日子。 例:?Day(date( )) 5.month(expd) 作用:返回月份。 例:?month(date( )) 6.year(expd) 作用:返回年。 例:?year(date( ))
2.4.4数据类型转换函数 四.数据类型转换函数 1.asc(expc) 返回指定字符串表达式中最左边字符的ASCII码值。 例:?Asc(“ABC”)结果为:65 2.chr(expn) 返回指定ASCII码值所对应的字符。 例:?chr(66)结果为:B
2.4.4数据类型转换函数 3.STR(expN1 [,expN2 ][,expN3]) 功能:将expN1 转换成长度为expN2 的字符串;<expN3>表示小数位数。 例:?“abc”+str(12,3)结果为“abc 12” x=12345.6789 ?str(x,8,2) 结果为:12345.68 4.VAL(expC) 功能:将字符表达式转换成数值。 遇到第一个非数值字符停止,如果第一个字符不是数字,则返回0。 例:?8+val(“21cdb”)结果为:29
2.4.5其他函数 5.DTOC(expD) 功能:日期转换为字符。 五.其他函数 1.IIF( 条件, exp1, exp2 ) 依条件的逻辑值决定返回exp1或者exp2 。 例如:x=11 ?IIF(x>9,100,20)结果为100 2.vartype( )返回变量的类型。 类型有:C N D L U M G
课堂练习: 1.在VFP中存储图像的字段类型应该是( ) A、备注型 B、通用型 C、字符型 D、双精度型 2.在VFP中,下面4个关于日期或日期时间的表达式中,错误的是( )。 A、{^2002.09.01 11:10:10am}- {^2001.09.01 11:10:10am} B、{^01/01/2002}+20 C、{^2002.02.01}+{^2001.02.01} D、{^2002.02.01}-{^2001.02.01}
课堂练习: 3.下面函数中函数值为字符的是() A、date( ) B、time( ) C、year( ) D、datetime( ) 4.在下面的数据类型中默认值为.f.的是( ) A、数值型 B、字符型 C、逻辑型 D、日期型 5.Left(“123456789”,len(“数据库”)的计算结果是( )
2.5VFP命令 命令书写规则: 必须以命令动词开头,命令动词和各子句之间用空格分开,命令动词可缩写为前4个字符,且不区分大小写。最大长度为254个字符。 例1:list [范围] [field 字段] [条件] 例2:显示学生表中所有女生的信息. use 学生 list for 性别=“女” 例3:显示学号,姓名,出生日期三个字段内容 list fiel 学号,姓名,出生日期