版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 3章 数据、函数与表达式 其值不发生变化的量,分为四种类型:1)数值型(N):直接由数字或+、-、小数点构成。2)字符型(C):由字符、汉字组成,需加定界符。如沈阳、”沈阳”、沈阳,同一定界符不能嵌套,如:“ AB ”CD” ”,但 AB ”CD” 是合法的。3)日期型(D):用定界。 如00-08-30 或CTOD(“01/08/30”)4)逻辑型(L):用.定界。如 .t.、.f.,.Y.,.N.等说明:请注意C、D、L型常量的定界符。注意区分”2010”为字符型常量,而不是数值型常量。逻辑型常量必须用“.”定界。注意各类型数据的宽度。常量常量变量:程序运行中,值可能会发生变化的量 变
2、量是内存中的一个存储单元的位置变量是内存中的一个存储单元的位置 变量名是存储位置的符号标识变量名是存储位置的符号标识 存储位置中存放的数据在程序操作期存储位置中存放的数据在程序操作期间通过该名称来读写间通过该名称来读写变量变量分类:1)字段名变量数据表中已定义的数据项每一个字段可有不同的取值表有一个记录指针,它指向的记录定义为当前记录,字段名变量现值,就是当前记录中对应字段值。记录指针是可以移动的,因此,字段名的取值随着指针的移动而改变,所以它是变量2)内存变量:独立于数据库之外的变量的创建 赋值格式:Store 表达式 to 变量变量 = 表达式 在赋值的同时,完成了变量的创建STORE 3
3、 TO nVar nVar = 3访问变量 如字段变量和内存变量同名:则字段变量具有更高的优先权 此时内存变量访问M.内存变量M-内存变量字段名变量 数据表中已定义的数据项 每一个字段可有不同的取值表有一个记录指针,它指向的记录定义为当前记录,字段名变量的现值,就是当前记录中对应字段的值。记录指针是可以移动的,因此,字段名的取值随着指针的移动而改变,所以它是变量 当前记录:记录指针指向的记录 *表刚打开,当前记录是第一条记录移动记录指针:移动记录指针:GO TOP|BOTTOM|:绝对移动记录指针。SKIP :相对移动记录指针 移动记录指针实例移动记录指针实例 Go 1 Skip 2 ? 编号
4、 skip Go bottom ? 编号 Skip 1 ? 编号编号 姓名101 张三102 王一103 刘六104 李四105 赵七 朱八表一2内存变量 变量名:是以汉字、字母、数字或下划线组成的字符串,串长最多为10个字符或5个汉字变量名必须以字母或汉字开头,下划线必须嵌在变量名中间,但不能嵌入空格符 内存变量分为四种类型:数值型、字符型、逻辑型和日期型 变量赋值格式:内存变量=表达式STORE 表达式to 内存变量表功能:把表达式的值送到内存变量中 数组:名字相同、用下标区分的内存变量称为数组 主要有以下特点:(1)数组元素的类型,由所赋的值来决定(2)数组和数据表之间可相互转换即数据表
5、中数据可以转换为数组数据数组数据也可以转换为数据表中的数据1.定义数组 数组名的取法和一般的变量名取法相同 定义数组命令: DIMENSION (,) ,( 命令功能:定义一个或多个内存变量数组。 说明:最多可有3600个元素,显示内存时只算一个变量数组下标起始值是1数组元素隐含的逻辑值为“假”*二维数组,可用一维下标来存取。这是由于在内存中,二维数组元素是按行列次序排列它们每个元素都可看作单独一个内存变量使用,数组实例 DIMENSION A(2,3) ? A4 ? A(2,1) ? A6 ? A(2,3) A(1,1) A(1,2) A(1,3) 1 2 3 A(2,1) A(2,2) A
6、(2,3) 4 5 6 变量:专用 在程序中用DIMENSION建立的数组为专用公用 命令窗口下建立的数组为公用 在程序中建立公用的数组用PUBLIC命令 格式为:PUBLIC数组名(,) 例如: DIMENSIOM A(4),B(2,3) 建立一维数组A和二维数组B 二维数组有六个元素: 分别为B(1,1)、B(1,2)、B(1,3)B(2,1)、B(2,2)、B(2,3)数组的赋值 格式: STORE 表达式 TO 数组名 数组名=表达式 命令功能:将表达式的值赋给数组变量上述两个命令是完全等价的表达式 表达式:是由常数、变量、函数和运算符组成的一个有物理意义的式子表达式总有一定的运算结果
7、,即有一个值,所以表达式也是一种数据 表达式分为(表达式结果):数值表达式字符表达式关系表达式逻辑表达式表达式的输出命令: 格式: ?, 功能: 计算表达式的值,并在屏幕或打印机上输出 例如: ? 4*6+10 341.数值表达式 数值表达式:是由算术运算符和数值型常数、变量、函数组成。运算结果为数值型数据。算术运算符为:+ - * ( ) 优先次序:括号、函数、乘方、乘除和加减,同级运算从左到右依次进行 如:362EXP(8) LOG(20) 252.字符表达式 字符表达式:是由字符运算符和字符型常数(即用定界符括起来的字符串)、变量、函数组成运算结果是字符型数据 三种字符串运算:*完全连接
8、运算格式:字符串1字符串2功能:将两个字符串连接为一个字符串。例如:? THIS IS A PENTHIS IS A PEN *完全连接是指两个字符串合并,即包括空格在内的字符串中所有字符相加。不完全连接运算格式:字符串1字符串2功能:也是将两个字符串连接为一个字符串,但是删去字符串1尾部的空格符例如:? “首都*北京首都:北京*注:串1尾部的空格移到串1后包含运算 格式:串1串2 功能:如串1包含在串2中,表达式的值为真,否则为假 例如:ABACBTE结果为假(F)ABABCDE结果为真(T) 注:包含运算是字符串的关系运算关系运算返回的是逻辑值3.关系表达式 关系表达式:是由关系运算符与字
9、符表达式或数值表达式组成结果是一个逻辑值关系成立结果取真(.T.),不成立结果取假(F)关系运算符两边的数据类型要一致,(同类型) 关系运算符有6种:=,=, 、#或!= 注:字符的比较是ASCII码值的大小空格0-9A-Z100? CHCA表达式例:表达式例: 1)算术表达式:结果为数值型。如 3+2 2)字符表达式:结果为字符型 如 Good +Morning 或Good -Morning 3)日期表达式:结果为日期或数值。如 DATE()+5 、DATE()-5 或 DATE()-00-08-20 4)关系表达式:结果为逻辑型。如 ”AB”$”ABCD”、”AB”2 .AND. .NOT
10、.56说明:在日期型表达式中,两个日期表达式相减,结果为数值,表示两日期之间相差的天数,两日期表达式相加,属非法表达式;一个日期表达式与一个数值表达式相加,结果为日期型表达式,表示从当前日期往后数N天;一个日期表达式与一数值表达式相减,表示从当前日期向前数N天。逻辑表达式包含关系表达式,关系表达式中包含算术表达式。注意,关系表达式与逻辑表达式的结果都为逻辑型。常用函数 函数是用程序来实现的一种数据运算或转换。每一个函数都有特定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个运算结果,称为函数值或返回值。函数可以用函数名和一对圆括号加以调用,自变量放在圆括号里,如LEN(x
11、)。函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。函数调用也可作为一条命令使用,但此时系统忽略函数的返回值。本章将常用函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数5类,通过举例分别介绍。数值函数 数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。 1.绝对值函数格式:ABS(数值表达式)功能:返回指定的数值表达式的绝对值。例如: ? ABS(10),ABS(-5) 10 5数值函数 2.符号函数格式:SIGN(数值表达式)功能:返回指定数值表达式的符号。当表达式的运算结果为正、负和零时,函数值分别为1、-1和0。例如:
12、? SIGN(-10),SIGN(0),SIGN(5) -1 0 1数值函数 3.求平方根函数格式:SQRT(数值表达式)功能:返回指定表达式的平方根。自变量表达式的值不能为负。例如: ? SQRT(4) 2数值函数4.圆周率函数 格式:PI() 功能:返回圆周率(数值型)。该函数没有自变量。数值函数 5.求整数函数格式与功能: INT(数值表达式) 返回指定数值表达式的整数部分 CEILING(数值表达式) 返回大于或等于指定数值表达式的最小整数 FLOOR(数值表达式) 返回小于或等于指定数值表达式的最大整数例如:X=5.8? INT(X);INT(-X);CEILING(X);CEILI
13、NG(-X);FLOOR(X);FLOOR(-X) 5 -5 6 -5 5 -6数值函数 6.四舍五入函数格式:ROUND(数值表达式1,数值表达式2)功能:返回指定表达式在指定位置四舍五入后的结果。说明:数值表达式2指明四舍五入的位置。若数值表达式2大于等于0,那么它表示的是要保留的小数位数:若数值表达式2小于0,那么它表示的是整数部分的舍入位数。例如:X=645.345? ROUND(X,2) ROUND(X,1),ROUND(X,0),ROUND(X,-1) 645.35 645.3 645 650数值函数 8.求最大值和最小值函数格式: MAX(数式1,数式2,数式3 MIN(数式1,
14、数式2,数式3功能: MAX( ) 计算各自变量表达式值,并返回其中的最大值。 MIN( ) 计算各自变量表达式值,并返回其中的最小值。说明:自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须相同。例如: ? MAX(8,100),MAX(8,100) 100 8 字符函数 字符函数是指自变量一般是字符型数据的函数。1.求字符串长度函数格式:LEN(字符表达式)功能:返回指定字符表达式值的长度,即所包含的字符个数。函数值为数值型。例如: X=book“ ? LEN(X) 4字符函数 2.空格字符串生成函数格式:SPACE(数值表达式)功
15、能:返回由指定数目的空格组成的字符串。 3.删除前后空格函数TRIM(字符表达式) 返回指定字符表达式值去掉尾部空格后形成的字符串LTRIM(字符表达式) 返回指定字符表达式值去掉前导空格后形成的字符串ALLTRIM(字符表达式) 返回指定字符表达式值去掉前导和尾部空格后形成的字符串例如: STORE SPACE(1)+VFP+SPACE(3) TO X ? TRIM(X) +LTRIM(X)+ALLTRIM(X) VFPVFP VFP ? LEN(X),LEN(TRIM(X),LEN(LTRIM(X),LEN(ALLTRIM(X) 7 4 6 3字符函数 4.取子串函数格式与功能: LEFT
16、(字符表达式,长度) 从指定表达式值的左端取一个指定长度的子串作为函数值 RIGHT(字符表达式,长度) 从指定表达式值的右端取一个指定长度的子串作为函数值 SUBSTR(字符表达式,起始位置,长度) 从指定表达式的值起始位置取指定长度的子串作为函数值说明:在SUBSTR()函数中,若缺省第三个自变量长度,则函数从指定位置一直取到最后一个字符。例如: STORE GOOD BYE! TO X ? LEFT(X,2),SUBSTR(X,6,2)+SUBSTR(X,6),RIGHT(X,3) GO BYBYE! YE!字符函数 11.字符串匹配函数格式:LIKE(字符表达式1,字符表达式2)功能:
17、比较两个字符串对应位置上的字符,若所有对应字符都相匹配,则函数返回逻辑真(.T.),否则返回逻辑假(.F.)。说明:字符表达式1中可以包含通配符*和?。*可与任何数目字符相匹配,?可以与任何单个字符相匹配。例如: STORE abc TO X STORE abcd TO y ?LIKE(ab*,x),LIKE(ab*,y),LIKE(x,y),LIKE(?b?,x),LIKE(Abc,x) .T. .T. .F. .T. .F.日期和时间函数 日期和时间函数的自变量一般是日期型数据或日期时间型数据。 1.系统日期和时间函数格式与功能: DATE( ) 返回当前系统日期,函数值为日期型。 TIM
18、E( ) 以24小时制、hh:mm:ss格式返回当前系统时间,函数值为字符型。 DATETIME( ) 返回当前系统日期时间,函数值为日期时间型。例如: ? DATE(),TIME(),DATETIME() 082503 16:59:05 082503 04:59:05PM日期和时间函数 2.求年份、月份和天数函数格式与功能: YEAR(日期表达式|日期时间表达式) 从指定的日期表达式或日期时间表达式中返回年份 MONTH(日期表达式|日期时间表达式) 从指定的日期表达式或日期时间表达式中返回月份 DAY(日期表达式|日期时间表达式) 从指定的日期或日期时间表达式中返回月里面的天数说明:这三个
19、函数的返回值都为数值型。例如:STORE 2001-08-25 TO d? YEAR(d),MONTH(d),DAY(d) 2003 8 25日期和时间函数 3.时、分和秒函数格式与功能: HOUR(日期时间表达式) 从指定的日期时间表达式中返回小时部分(24小时制) MINUTE(日期时间表达式) 从指定的日期时间表达式中返回分种部分 SEC(日期时间表达式) 从指定的日期时间表达式中返回秒数部分说明:这三个函数的返回值都为数值型。例如: STORE 2003-08-25 04:20:40 P TO t ? HOUR(t),MINUTE(t),SEC(t) 16 20 40数据类型转换函数
20、数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。 1.数值转换成字符串格式:STR(数式 ,长度,小数位数)功能:将数值表达式的值转换成字符串,转换时根据需要自动进行四舍五入。说明:(1) 返回字符串的理想长度L应该是数式值的整数部分位数加上小数位数值,再加上1位小数点(2)如果长度值大于L,则字符串加前导空格以满足规定的长度要求;(3)如果长度值大于等于数式值的整数部分位数(包括负号)但又小于L,则优先满足整数部分而自动调整小数位数;数据类型转换函数(4)如果长度值小于数值表达式值的整数部分位数,则返回一串星号(*)。(5)小数位数的默认值为0,长度的默认值为10。例如:
21、STORE -834.456 TO X ? X=+STR(X,8,3) X=-834.456 ? STR(X,9,2),STR(X,6,2),STR(X,3),STR(X,6),STR(X) -834.46 -834.5 * -834 -834数据类型转换函数 2.字符串转换成数值格式:VAL(字符表达式)功能:将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。说明:(1)若字符串内出现非数字字符,那么只转换前面部分;(2)若字符串的首字符不是数字符号,则返回数值零,但忽略前导空格。例如: 数据类型转换函数 STORE -6789TO x STORE .23 TO y
22、STORE A42TO z ? VAL(x),VAL(x+y),VAL(x+z),VAL(z+y) -6789 -6789.23 -6789.00 0.00数据类型转换函数 3.字符串转换成日期或日期时间格式与功能: CTOD(字符式) 将字符式值转换成日期型数据 CTOT(字符表达式) 将字符式值转换成日期时间型数据说明:字符串中的日期部分格式要与SET DATE TO 命令设置的格式一致。其中的年份可以用四位,也可以用两位。如果用两位,则世纪由SET CENTURY TO 语句指定。例如:SET DATE TO YMDSET CENTURY ON SET CENTURY TO 19 ROL
23、LOVER 51d1=CTOD(2003/07/25)? d1,CTOD(50/01/01),CTOD(510101) 20030725 20500101 19510101 这里,SET CENTURY TO语句指定:小于51的两位数年份属于21世纪(19+1),而大于等于51的两位数年份属于20世纪(19)。数据类型转换函数 4.日期或日期时间转换成字符串格式与功能 DTOC(日期表达式|日期时间表达式,1) 将日期型数据或日期时间数据的日期部分转换成字符串 TTOC(日期时间表达式,1) 将日期时间数据转换成字符串。说明: (1)字符串中日期部分的格式与SET DATE TO语句的设置和S
24、ET CENTURY ON|OFF(ON 为四位年份,OFF为两位数年份)语句的设置有关。 (2)时间部分的格式与SET HOURS TO 12|24语句的设置有关。 (3)DTOC()函数,如果使用选项1,则字符串的格式总是YYYYMMDD,共8个字符。对TTOC()来说,如果使用选项1,则字符串的格式总是为YYYYMMDDHHMMSS,采用24小时制,共14个字符数据类型转换函数例如:STORE DATETIME() TO t? t082503 10:54:49 PM? DTOC(t),DTOC(t,1),TTOC(t),TTOC(t,1) 082503 20030825 082503 1
25、9:54:49PM 20030825225449数据类型转换函数 5.宏替换函数格式:&字符型变量.功能:替换出字符型变量的内容,即&的值是变量中的字符串。说明:如果该函数与其后的字符无明确分界,则要用“.”作函数结束标识。宏替换可以嵌套使用。例如:STORE ZGDA TO XUSE & X &相当于USE ZGDAXM=姓名? &XM +你好! &相当于? 姓名+你好! 张黎黎你好! &字段变量姓名的值是张黎黎SKIP &转到下条记录? XM,& XM &相当于? XM,姓名 姓名 李艳测试函数 在数据处理过程
26、中,有时用户需要了解操作对象的状态。例如,要使用的文件是否存在、数据库的当前记录号、是否到达了文件尾、检索是否成功、某工作区中记录指针所指的当前记录是否有删除标记、数据类型等信息。尤其是在运行应用程序时,常常需要根据测试结果来决定下一步的处理方法或程序走向。 1.空值(NULL值)测试函数格式:ISNULL(表达式)功能:判断一个表达式的运算结果是否为NULL值,若是NULL值返回逻辑真(.T.),否则返回逻辑假(.F.)。例如:STORE .NULL.TO X? X,ISNULL(X) .NULL. .T.测试函数 2.“空”值测试函数格式:EMPTY(表达式)功能:根据指定表达式的运算结果
27、是否为“空”值,返回逻辑真(.T.)或逻辑假(.F.)。说明: (1)这里所指的“空”值与NULL值是两个不同的概念。函数EMPTY(.NULL.)的返回值为逻辑假(.F.)。 (2)该函数自变量表达式的类型可以是数值型、字符型、逻辑型、日期型等类型。不同类型数据的“空”值,有不同的规定,如表3.6所示。测试函数 表3.6 不同类型数据的“空”值规定 数据类型 “空”值 数据类型 “空”值 数值型 0 双精度型 0货币型 0 日期时间 空(如CTOT()浮点型 0 逻辑型 .F.整型 0 备注字段 空(无内容)日期型 空(如CTOD()字符型 空串、空格、 制表符、回车、换行 测试函数 3.数
28、据类型测试函数格式:VARTYPE(表达式,逻辑表达式)功能:测试表达式的类型,返回一个大写字母。说明: 函数值为字符型。字母的含义如下表所示。测试函数用VARTYPE()测得的数据类型 返回的字母 数据类型 返回的字母 数据类型 C 字符型或备注型 G 通用型 Y 货币型 D 日期型 T 日期时间型 L 逻辑型 X Null值 O 对象型 U 未定义 N 数值型、整型、浮点或双精度型若表达式是一个数组,则根据第一个数组元素的类型返回字符串。若表达式的运算结果是NULL值,则根据逻辑表达式值决定是否返回表达式的类型;如果逻辑表达式值为.T.,就返回表达式的原数据类型。如果逻辑表达式值为.F.或
29、缺省,则返回X以表明表达式的运算结果是NULL值。测试函数 例如: X=AAA STORE 10 TO X STORE .NULL. TO Y STORE $100.2 TO Z ? VARTYPE(X),VARTYPE(Y,.T.),VATRYPE(Y),VARTYPE(Z) N C X Y测试函数 4.表文件尾测试函数系统对表中的记录是逐条进行处理的。对于一个打开的表文件来说,在某一时刻只能处理一条记录。VFP为每一个打开的表设置了一个内部使用的记录指针,指向正在被操作的记录,该记录称为当前记录 。记录指针的作用是标识表的当前记录。表文件的逻辑结构如图3.1所示。最上面的记录是首记录,记为
30、TOP,最下面的记录是尾记录,记为BOTTOM。在 第 一 个 记 录 之 前 有 一 个 文 件 起 始 标 识 , 称 为Beginning of File(BOF)在最后一个记录的后面有一个文件结束标识,称为End of File(EOF)。使用测试函数能够得到指针的位置。刚刚打开表时,记录指针总是指向首记录。测试函数格式:EOF(工作区号|表别名)功能:测试指定表文件中的记录指针是否指向文件尾,是返回逻辑真.T.,否则返回逻辑假.F.。说明:表文件尾是指最后一条记录的后面位置。若缺省自变量,则测试当前表文件。若在指定工作区上没有打开表文件,函数返回逻辑假.F.。若表文件中不包含任何记录
31、,函数返回逻辑真.T.。例如:USE ZGDAGO BOTTOM? EOF() .F.SKIP? EOF(),EOF(2) &2号工作区没有打开表 .T. .F. 测试函数5.表文件首测试函数格式:BOF(工作区号|表别名)功能:测试当前表文件(若缺省自变量)或指定表文件中的记录指针是否指向文件首,若是返回逻辑真.T.,否则返回逻辑假.F.。说明:表文件首是指第一条记录的前面位置。若指定工作区上没有打开表文件,函数返回逻辑假.F.。若表文件中不包含任何记录,函数返回逻辑真.T.。测试函数 6.记录号测试函数格式:RECNO(工作区号|表别名)功能:返回当前表文件(若缺省自变量)或指定表文件中当前记录(记录指针所指记录)的记录号。说明:如果指定工作区上没有打开表文件,函数值为0。如果记录指针指向文件尾,函数值为表文件中的记录数加1。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度厕所革命项目厕所革命标准制定与实施合同3篇
- 2025年度智能温室大棚建筑与物联网技术合同4篇
- 2025年度临时用电安全设施更新改造协议4篇
- 2025年度美团外卖商家客户关系管理系统协议4篇
- 2025年建筑材料绿色生产技术研发与应用合同3篇
- 2025年鸭苗养殖与冷链物流销售合同规范3篇
- IT行业专属保密合同书样本下载版B版
- 科技前沿西安创新企业概览
- 个人车辆租赁(2024版)
- 孕妇职场活力秘诀工作与健康双丰收
- 高校铸牢中华民族共同体意识教育的路径研究
- 《面神经炎护理措施分析》3900字(论文)
- 城市微电网建设实施方案
- 企业文化融入中华传统文化的实施方案
- 9.1增强安全意识 教学设计 2024-2025学年统编版道德与法治七年级上册
- 《化工设备机械基础(第8版)》全套教学课件
- 人教版八年级数学下册举一反三专题17.6勾股定理章末八大题型总结(培优篇)(学生版+解析)
- 2024届上海高考语文课内古诗文背诵默写篇目(精校版)
- DL-T5024-2020电力工程地基处理技术规程
- 初中数学要背诵记忆知识点(概念+公式)
- 驾照体检表完整版本
评论
0/150
提交评论