47
第第第 VFP 第第第第第第

第二章 VFP 语言基础知识

  • Upload
    jariah

  • View
    90

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 第二章  VFP 语言基础知识

第二章

VFP 语言基础知识

Page 2: 第二章  VFP 语言基础知识

2.1 2.1 数据类型数据类型2.1 2.1 数据类型数据类型

2.2 2.2 数据存储数据存储2.2 2.2 数据存储数据存储

2.4 2.4 函数函数2.4 2.4 函数函数

2.3 2.3 运算符和表达式运算符和表达式2.3 2.3 运算符和表达式运算符和表达式

第二章 VFP 语言基础

主要内容 :

Page 3: 第二章  VFP 语言基础知识

2.1 数据类型2.1 数据类型

1.1. 字符型数据字符型数据1.1. 字符型数据字符型数据

2.2. 数值型数据数值型数据2.2. 数值型数据数值型数据

4.4. 日期型数据日期型数据4.4. 日期型数据日期型数据

5.5. 备注型数据备注型数据5.5. 备注型数据备注型数据

*7.*7. 浮点型数据浮点型数据*7.*7. 浮点型数据浮点型数据

6.6. 通用型数据通用型数据6.6. 通用型数据通用型数据

3.3. 逻辑型数据逻辑型数据3.3. 逻辑型数据逻辑型数据*8.*8. 双精度符型数据双精度符型数据 *8.*8. 双精度符型数据双精度符型数据

*9.*9. 整型数据整型数据*9.*9. 整型数据整型数据

*10.*10. 货币型数据货币型数据*10.*10. 货币型数据货币型数据

*11.*11. 日期时间型数据日期时间型数据*11.*11. 日期时间型数据日期时间型数据

Page 4: 第二章  VFP 语言基础知识

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

1 、字符型1、字符型

Page 5: 第二章  VFP 语言基础知识

2 、数值型2、数值型 数值型数据( Numeber )是描述数量的数据类型。由数字( 0-9 )、小数点和正负号组成。最大长度为 20位。

例: 18.5 6789.3453 、日期型3、日期型

日期型( Date )数据是用于表示日期的,默认格式为 {^yyyy-mm-dd} 来表示。长度固定为 8位。 例 :{^2005-8-26} 、 {^1998-04-05 10:00:00 am}

Page 6: 第二章  VFP 语言基础知识

4 、逻辑型4、逻辑型

逻辑型数据 ( Logic )是描述客观事物真假的数据,用于表示逻辑判断结果的。它只有两类值 : 真( .t. )和( .f. )假。 长度固定为 1 。

5 、备注型5、备注型 备注型( Memo) 数据用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。长度固定为 4位。 只用于数据表中的字段类型的定义。

Page 7: 第二章  VFP 语言基础知识

6 、通用型6、通用型

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

Page 8: 第二章  VFP 语言基础知识

2.2 数据存储

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

Page 9: 第二章  VFP 语言基础知识

常量是指在数据处理过程中其值保持不变的量。包括:

2.2.1 常量

数值型常量 , 字符型常量 ,逻辑型常量 , 日期型常量 .

1. 数值型常量

例: 123.5 0.9E+6

包括整数和小数在内的数值。

Page 10: 第二章  VFP 语言基础知识

2.2.1 常量

2. 字符型常量

字符型数据使用时必须用定界符双引号或单引号或方扩号括起来例:“王小力” ‘ abc’ [232] 是字符型数据 而 姓名 ,xy,123 不是字符型数据。

思考:以下表达式的结果? 1. ? 12+13 2. ?“ 12”+“13”

Page 11: 第二章  VFP 语言基础知识

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

Page 12: 第二章  VFP 语言基础知识

2.2.1 常量

4. 逻辑型常量

真( .t.) 假 ( .f.)

思考:123.5 “abcde” .t. .f.{^1998-04-05}{^1998-04-05 10:00:00}

Page 13: 第二章  VFP 语言基础知识

数值型内存变量字符型内存变量逻辑型内存变量日期型内存变量

2.2.2 内存变量

常用的内存变量类型有 :

Page 14: 第二章  VFP 语言基础知识

1. 内存变量的命名

2.2.2 内存变量

(1) 由汉字、字母、数字、下划线组成,而且 必须以汉字、字母或下划线开头。(2) 长度最多 128 个字符。(一个汉字占 2个字节)(3) 不能使用 VFP 的保留字。例 1:在下列字符串中,不符合 VFP 规定的、非法的

变量名是( ) A 、 GZINPUT2 B 、 A_SK97 C 、 4AK D 、姓名

Page 15: 第二章  VFP 语言基础知识

例 2:在下列字符串中,符合 VFP 规定的、合法的变量名是( )

A 、 FE_1234 B 、 FIND C 、 25_ABCD D 、 PS:122. 内存变量的建立 给内存变量赋值有 STORE 和 = 两个命令 .例: STORE 0 TO A1 , A2 , A3 A1=15 A2=16 ? A1+A2+A3

2.2.2 内存变量

Page 16: 第二章  VFP 语言基础知识

注意: 一行只能写一条命令。写完一条命令后按回车键来确认。

?可以显示后边表达式的结果。

3. 显示内存变量 List/display memory [like<通配符 >]例 : W1=“123” W2=5 X1=4 W3=.f. List memory like W*

2.2.2 内存变量

Page 17: 第二章  VFP 语言基础知识

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

例: release all like W* List memory like w*

2.2.2 内存变量

Page 18: 第二章  VFP 语言基础知识

2.2.3 字段

学生表学生表学号 姓名 性别出生日期 系别 贷款否 补贴01010201 王小丽 女 1982-7-12 管理 TRUE 3001010308 李华 男 1983-11-20 法律 FALSE 3001020215 刘天海 男 1981-8-11 计算机 TRUE 3001020304 于莉丽 男 1983-3-12 计算机 TRUE 3001030306 张杰 男 1982-10-9 管理 FALSE 3001030402 林玉 女 1983-3-8 管理 TRUE 3001030505 钱晓亮 男 1983-12-23 管理 TRUE 3001040501 程丽媛 女 1982-9-23 秘书 TRUE 3001050508 陈勇 男 1982-5-10 机械 FALSE 3001060301 刘冠军 男 1981-9-4 中文 FALSE 30

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

Page 19: 第二章  VFP 语言基础知识

常用的字段变量类型有: 数值型、字符型、逻辑型( 1)、日期型( 8)、备注

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

定义为( ) A 、 2 B 、 8 C 、 4 D 、 6

2.2.3 字段

Page 20: 第二章  VFP 语言基础知识

数组 :

2.2.4 数组

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

Page 21: 第二章  VFP 语言基础知识

例: 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.2.4 数组

Page 22: 第二章  VFP 语言基础知识

2.3 表达式

1. 数值表达式

2. 字符表达式

4. 关系表达式

5. 逻辑表达式

3. 日期表达式

Page 23: 第二章  VFP 语言基础知识

2.3.1 数值表达式

1、算术表达式

运算符号: + - * / ** 或 ^ %(求余 )例: ? 2**3

? 12+45? 12%5? (2*3-4)/2

Page 24: 第二章  VFP 语言基础知识

2.3.2 字符表达式

2 、字符表达式(1)+:联接,联接两个字符型数据

例: ?“AB”+”CD”

(2)-:将前边字符串尾部空格压缩到后边字符串的尾部

?“ab ” – “cd”?len(“ab ” – “cd”)

例:

Page 25: 第二章  VFP 语言基础知识

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}

思考:

例:

Page 26: 第二章  VFP 语言基础知识

4 、关系表达式

2.3.4 关系表达式

< 小于 <=小于等于> 大于 >=大于等于=等于 ==精确比较<>或 #或 !=不等

?5<8 ?4+6<=10 ?“ABC”==“AB” ?ABC”=“AB”? [abc]$[this abc]

$ 查看一个字符串是否在另一个字符串中。

注意:关系表达式结果肯定为逻辑值。

Page 27: 第二章  VFP 语言基础知识

5 、逻辑表达式

经验 : 与运算 :全真为真 ; 或运算 :全假为假 ; 非运算 :真为假 ,假为真 ;

?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 逻辑表达式

例 1:

Page 28: 第二章  VFP 语言基础知识

2.3.5 逻辑表达式

?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 )

?.not.3+5>6?.not.3+5<6

例 2:

例 3:

运算符的优先级:

Page 29: 第二章  VFP 语言基础知识

2.4 系统函数

2.4.2 2.4.2 字符处理函数字符处理函数2.4.2 2.4.2 字符处理函数字符处理函数

2.4.1 2.4.1 数值处理函数数值处理函数2.4.1 2.4.1 数值处理函数数值处理函数

2.4.3 2.4.3 日期和时间处理函数日期和时间处理函数2.4.3 2.4.3 日期和时间处理函数日期和时间处理函数

2.4.4 2.4.4 数据转换函数数据转换函数2.4.4 2.4.4 数据转换函数数据转换函数

2.4.5 2.4.5 其他常用函数其他常用函数2.4.5 2.4.5 其他常用函数其他常用函数

Page 30: 第二章  VFP 语言基础知识

一一 .. 数值处理函数数值处理函数 1.1.取整函数取整函数 格式:格式: int(int( 数值表达式)数值表达式) 功能:返回数据表达式的整数部分。功能:返回数据表达式的整数部分。 例:例: ?int(4.98) ?int(4.98) 结果为结果为 4 4 2.2.四舍五入函数四舍五入函数 格式:格式: ROUNDROUND (( <<数值表达式数值表达式 1>,<1>,<数值表达式数值表达式 2>2>) ) 功能:依照功能:依照 expn2expn2 的值,对的值,对 expn1expn1四舍五入四舍五入 例:例: ?round(35.865,2)?round(35.865,2) 结果为 结果为 35.8735.87 ?round(135.865,-2)?round(135.865,-2) 结果为结果为 100100

2.4.1 数值处理函数

Page 31: 第二章  VFP 语言基础知识

2.4.1 数值处理函数

3.3. 取绝对值函数取绝对值函数 格式:格式: ABSABS (( << 数值表达式数值表达式 >> )) 功能:返回数值表达式的绝对值。功能:返回数值表达式的绝对值。 例: 例: ?abs(-25) ?abs(-25) 结果为结果为 25254.4. 求最大值函数求最大值函数 格式: MAX( <expR1>, <expR2> [expR3>] …) 功能:返回几个数值表达式中最大的值。 例: ?max(-30,40,20) 结果为: 405.5. 求最小值函数求最小值函数 格式: Min ( <expR1>, <expR2> [expR3>] …) 功能:返回几个数值表达式中最小的值。 例: ?min(-30,40,20) 结果为: -30

Page 32: 第二章  VFP 语言基础知识

6.6.求平方根函数求平方根函数 格式:格式: SQRTSQRT (( expnexpn ) ) 功能:返回功能:返回 expnexpn 的算术平方根值。的算术平方根值。 例:例: ?sqrt(36)?sqrt(36) 结果为结果为 667.7.求自然对数函数求自然对数函数 格式: log(expn) 功能:求 expn 的自然对数值 . 例: ?log(32.78) 结果为: 3.498.8.求幂函数求幂函数 格式: exp(expn) 作用:求 expn 对于 e的幂的值。

2.4.1 数值处理函数

Page 33: 第二章  VFP 语言基础知识

9.取模函数格式: mod(expn1,expn2)功能:求 expn1除以 expn2 的余数例: ?mod(15,4) 结果为: 3

注 :当 expn1,expn2异号时 ,两数相除所得余数 ,先与被除数同号 ,再加上除数的值即可 .

2.4.1 数值处理函数

Page 34: 第二章  VFP 语言基础知识

二二 .. 字符处理函数字符处理函数 1.1.替换替换 格式:格式: &expc&expc 功能:替换一个字符型变量的内容,即功能:替换一个字符型变量的内容,即 && 的值是变量的值是变量

中的字符串。中的字符串。 例:例: X=“23”X=“23” ?12+&x ?12+&x 结果为结果为 3535 2.2.求字符串长度函数求字符串长度函数 格式:格式: LEN ( <expC>) 功能:计算参数字符串的长度 ,结果为数值型。

2.4.2 字符处理函数

Page 35: 第二章  VFP 语言基础知识

3.生成空格函数 格式: space(expn) 功能:产生由 expn 指定数目的空格,结果为字符型。 例: ?“ab”+space(3)+ “cd” 结果为 ab cd4. 字符串转换成小写字母函数 格式: LOWER( <expC> ) 功能:将字符表达式中的大写字母转换成小写字母。 例:? Lower(“ViaFb”) 结果为:“ viafb”5. 字符串转换成大写字母函数 格式: upper ( <expC> ) 功能:将字符表达式中的小写字母转换成大写字母。 例:? upper(“ViaFb”) 结果为:“ VIAFB”

2.4.2 字符处理函数

Page 36: 第二章  VFP 语言基础知识

6.删除字符串尾部的空格函数 格式: TRIM ( <expC> ) 功能:删除 <expC> 尾部空白字符与 RTRIM ()完全相同。

例: x=[abc ] ?len(trim(x)) 结果为: 37.删除字符串左边空格函数 格式: LTRIM ( <expC> ) 功能:删除 <expC> 左边空白字符。 例: x=[ abc] ?len(ltrim(x)) 结果为: 3

2.4.2 字符处理函数

Page 37: 第二章  VFP 语言基础知识

8.删除字符串两边空格函数 格式: ALLTRIM ( <expC> ) 功能:删除 <expC> 两边空白字符。 例: x=[ abc ] ?len(ALLTRIM(x)) 结果为: 39.取左边子字符串函数 格式: LEFT ( expc,expn ) 例: ?left(“王小力” ,2) 结果为“王”10.取右边子字符串函数 格式: right ( expc,expn ) 例: ?right(“王小力” ,2) 结果为“力”

2.4.2 字符处理函数

Page 38: 第二章  VFP 语言基础知识

11.取子字符串函数 格式: SUBSTR( expC, expN1,expn2 ) 功能 :从字符串 expC后位置 expN1 开始,截取 expN2 个

字符。如果没有 expN2 ,则会截至末尾。 例: ?substr(“王小力” ,3,2) 结果为“小”12. 子字符串位置测试函数 格式: AT( expC1 ,expC2 [,<expN>] ) 功能 :在 expC2 中由左向右寻找第一次出现的 expC1,然后以整数值返回其出现的位置。如果未出现返回 0;加入<expN> 参数,则寻找 第 <expN> 次出现的位置。

2.4.2 字符处理函数

Page 39: 第二章  VFP 语言基础知识

例 :? At(“is”, “thaisbiscis”)结果为: 4 ? At(“is”, “thaisbiscis”, 2) 结果为: 7

三 . 日期和时间处理函数 1 、 date( ) 作用:返回系统当前日期。 2 、 time( ) 作用:返回系统当前时间。 3 、 datetime( ) 作用:返回系统当前日期和时间。

2.4.3 日期和时间处理函数

Page 40: 第二章  VFP 语言基础知识

4.day(expd) 作用:返回日子。 例:? Day(date( ))5.month(expd) 作用:返回月份。 例: ?month(date( ))6.year(expd) 作用:返回年。 例:? year(date( ))

2.4.3 日期和时间处理函数

Page 41: 第二章  VFP 语言基础知识

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

2.4.4 数据类型转换函数

Page 42: 第二章  VFP 语言基础知识

3.STR( expN1 [,expN2 ][,expN3] ) 功能 :将 expN1 转换成长度为 expN2 的字符串; <expN

3>表示小数位数。 例: ?“abc”+str(12,3) 结果为“ abc 12” x=12345.6789 ?str(x,8,2) 结果为: 12345.684.VAL( expC ) 功能 :将字符表达式转换成数值。 遇到第一个非数值字符停止,如果第一个字符不是数字,则返回 0 。

例: ?8+val(“21cdb”)结果为: 29

2.4.4 数据类型转换函数

Page 43: 第二章  VFP 语言基础知识

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

2.4.5 其他函数

Page 44: 第二章  VFP 语言基础知识

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}

课堂练习:

Page 45: 第二章  VFP 语言基础知识

课堂练习:3. 下面函数中函数值为字符的是() A、 date( ) B 、 time( ) C 、 year( ) D 、 datetime( )4. 在下面的数据类型中默认值为 .f. 的是 ( ) A 、数值型 B、字符型 C、逻辑型 D、日期型

5.Left(“123456789”,len(“数据库” )的计算结果是( )

Page 46: 第二章  VFP 语言基础知识

命令书写规则 : 必须以命令动词开头,命令动词和各子句之间用空格分开,命令动词可缩写为前 4 个字符,且不区分大小写。最大长度为 254 个字符。

例 1: list [ 范围 ] [field 字段 ] [条件 ]

例 2:显示学生表中所有女生的信息 . use 学生 list for 性别 =“女”例 3:显示学号,姓名,出生日期三个字段内容 list fiel 学号,姓名,出生日期

2.5VFP 命令

Page 47: 第二章  VFP 语言基础知识

本章结束 ,谢谢 !