1 / 47

第二章 VFP 语言基础知识

第二章 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) 数据描述不具有计算能力的文字数据类型。

jariah
Download Presentation

第二章 VFP 语言基础知识

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 VFP语言基础知识

  2. 第二章 VFP语言基础 主要内容: 2.1 数据类型 2.2 数据存储 2.3 运算符和表达式 2.4 函数

  3. 2.1 数据类型 1.字符型数据 *7.浮点型数据 2.数值型数据 *8.双精度符型数据 3.逻辑型数据 *9.整型数据 4.日期型数据 *10.货币型数据 5.备注型数据 *11.日期时间型数据 6.通用型数据

  4. 1、字符型 字符型(Character)数据描述不具有计算能力的文字数据类型。 字符型数据包括汉字、英文字符、数字字符、空格及其他专用符号。 长度范围是0---254个字符。

  5. 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}

  6. 4、逻辑型 逻辑型数据 (Logic)是描述客观事物真假的数据,用于表示逻辑判断结果的。它只有两类值:真(.t.)和(.f.)假。 长度固定为1。 5、备注型 备注型(Memo)数据用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。长度固定为4位。 只用于数据表中的字段类型的定义。

  7. 6、通用型 通用型(General)数据可以是电子表格、文档、图片等。它只用于数据表中的字段类型的定义。长度固定为4。

  8. 2.2数据存储 VFP允许使用常量、变量、数组、记录和对象来存储数据,它们也被称为存储数据的容器. 2.2.1 常量(Constants) 2.2.2 内存变量(Variables) 2.2.3 字段(Fields) 2.2.4 数组(Arrays)

  9. 2.2.1 常量 常量是指在数据处理过程中其值保持不变的量。包括: 数值型常量, 字符型常量, 逻辑型常量, 日期型常量. 1.数值型常量 包括整数和小数在内的数值。 例: 123.5 0.9E+6

  10. 2.2.1 常量 2.字符型常量 字符型数据使用时必须用定界符双引号或单引号或方扩号括起来 例:“王小力”‘abc’ [232]是字符型数据 而 姓名,xy,123 不是字符型数据。 思考:以下表达式的结果? 1. ?12+13 2. ?“12”+“13”

  11. 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 功能: 按月/日/年格式显示日期.

  12. 2.2.1 常量 4.逻辑型常量 真(.t.) 假 (.f.) 思考: 123.5 “abcde” .t. .f. {^1998-04-05} {^1998-04-05 10:00:00}

  13. 2.2.2 内存变量 数值型内存变量 字符型内存变量 逻辑型内存变量 日期型内存变量 常用的内存变量类型有:

  14. 2.2.2 内存变量 1.内存变量的命名 (1)由汉字、字母、数字、下划线组成,而且 必须以汉字、字母或下划线开头。 (2)长度最多128个字符。(一个汉字占2个字节) (3)不能使用VFP的保留字。 例1:在下列字符串中,不符合VFP规定的、非法的 变量名是( ) A、GZINPUT2 B、A_SK97 C、4AK D、姓名

  15. 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

  16. 2.2.2 内存变量 注意: 一行只能写一条命令。写完一条命令后按回车键来确认。 ?可以显示后边表达式的结果。 3.显示内存变量 List/display memory [like<通配符>] 例: W1=“123” W2=5 X1=4 W3=.f. List memory like W*

  17. 2.2.2 内存变量 4.释放内存变量 (1)clear memory (2)release all [like<通配符>] /except<通配符>] 作用:释放所有内存变量或指定的内存变量。 例:release all like W* List memory like w*

  18. 2.2.3 字段 学生表 在上表中,学号、姓名、性别等均是字段变量。

  19. 2.2.3 字段 常用的字段变量类型有: 数值型、字符型、逻辑型(1)、日期型(8)、备注型(4)和通用型(4)等。 课堂练习: 1.在VFP中,以下说法不正确的是( ) A、字符型字段中可以存放空格 B、日期型字段中专门存放日期数据 C、备注型字段中可以一个字都不放 D、逻辑型字段中可以存放数值 2.字段为数值型字段,其宽度为6,则其小数宽度最多可定义为( ) A、2 B、8 C、4 D、6

  20. 2.2.4 数组 数组: 是内存中连续的一片存储区域,由一组变量组成。每个数组元素通过数组名及相应的下标被引用,相当于一个一般的内存变量。 通过赋值语句可以为各个元素分别赋值,且赋值的类型可以不同。 数组的定义: dimension<array1>(<expn1>[,<expn2>])[,<array2>(<expn3>[,<expn4>])]… 功能:定义一个或若干个一维或二维数组。

  21. 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)

  22. 2.3 表达式 1. 数值表达式 2. 字符表达式 3. 日期表达式 4. 关系表达式 5. 逻辑表达式

  23. 2.3.1 数值表达式 1、算术表达式 运算符号:+ - * / **或^ %(求余) 例: ? 2**3 ? 12+45 ? 12%5 ? (2*3-4)/2

  24. 2.3.2 字符表达式 2、字符表达式 (1)+:联接,联接两个字符型数据 例: ?“AB”+”CD” (2)-:将前边字符串尾部空格压缩到后边字符串的尾部 例: ?“ab ” – “cd” ?len(“ab ” – “cd”)

  25. 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}

  26. 2.3.4关系表达式 4、关系表达式 < 小于 <=小于等于 > 大于 >=大于等于 =等于 ==精确比较 <>或#或 !=不等 ?5<8 ?4+6<=10 ?“ABC”==“AB” ?ABC”=“AB” ?[abc]$[this abc] $查看一个字符串是否在另一个字符串中。 注意:关系表达式结果肯定为逻辑值。

  27. 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

  28. 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

  29. 2.4系统函数 2.4.1 数值处理函数 2.4.2 字符处理函数 2.4.3 日期和时间处理函数 2.4.4 数据转换函数 2.4.5 其他常用函数

  30. 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

  31. 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

  32. 2.4.1数值处理函数 6.求平方根函数 格式:SQRT(expn) 功能:返回expn的算术平方根值。 例:?sqrt(36)结果为6 7.求自然对数函数 格式:log(expn) 功能:求expn的自然对数值. 例:?log(32.78)结果为:3.49 8.求幂函数 格式:exp(expn) 作用:求expn对于e的幂的值。

  33. 2.4.1数值处理函数 9.取模函数 格式:mod(expn1,expn2) 功能:求expn1除以expn2的余数 例:?mod(15,4)结果为:3 注:当expn1,expn2异号时,两数相除所得余数,先与被除数同号,再加上除数的值即可.

  34. 2.4.2字符处理函数 二.字符处理函数 1.替换 格式:&expc 功能:替换一个字符型变量的内容,即&的值是变量中的字符串。 例: X=“23” ?12+&x 结果为35 2.求字符串长度函数 格式:LEN(<expC>) 功能:计算参数字符串的长度,结果为数值型。

  35. 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”

  36. 2.4.2字符处理函数 6.删除字符串尾部的空格函数 格式:TRIM( <expC> ) 功能:删除<expC> 尾部空白字符与RTRIM()完全相同。 例:x=[abc ] ?len(trim(x))结果为:3 7.删除字符串左边空格函数 格式:LTRIM( <expC> ) 功能:删除<expC> 左边空白字符。 例:x=[ abc] ?len(ltrim(x))结果为:3

  37. 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)结果为“力”

  38. 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>次出现的位置。

  39. 2.4.3日期和时间处理函数 例:?At(“is”, “thaisbiscis”)结果为:4 ?At(“is”, “thaisbiscis”,2)结果为:7 三.日期和时间处理函数 1、date( ) 作用:返回系统当前日期。 2、time( ) 作用:返回系统当前时间。 3、datetime( ) 作用:返回系统当前日期和时间。

  40. 2.4.3日期和时间处理函数 4.day(expd) 作用:返回日子。 例:?Day(date( )) 5.month(expd) 作用:返回月份。 例:?month(date( )) 6.year(expd) 作用:返回年。 例:?year(date( ))

  41. 2.4.4数据类型转换函数 四.数据类型转换函数 1.asc(expc) 返回指定字符串表达式中最左边字符的ASCII码值。 例:?Asc(“ABC”)结果为:65 2.chr(expn) 返回指定ASCII码值所对应的字符。 例:?chr(66)结果为:B

  42. 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

  43. 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

  44. 课堂练习: 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}

  45. 课堂练习: 3.下面函数中函数值为字符的是() A、date( ) B、time( ) C、year( ) D、datetime( ) 4.在下面的数据类型中默认值为.f.的是( ) A、数值型 B、字符型 C、逻辑型 D、日期型 5.Left(“123456789”,len(“数据库”)的计算结果是( )

  46. 2.5VFP命令 命令书写规则: 必须以命令动词开头,命令动词和各子句之间用空格分开,命令动词可缩写为前4个字符,且不区分大小写。最大长度为254个字符。 例1:list [范围] [field 字段] [条件] 例2:显示学生表中所有女生的信息. use 学生 list for 性别=“女” 例3:显示学号,姓名,出生日期三个字段内容 list fiel 学号,姓名,出生日期

  47. 本章结束,谢谢!

More Related