本章要点常量与变量运算符和表达式常用函数解读课件_第1页
本章要点常量与变量运算符和表达式常用函数解读课件_第2页
本章要点常量与变量运算符和表达式常用函数解读课件_第3页
本章要点常量与变量运算符和表达式常用函数解读课件_第4页
本章要点常量与变量运算符和表达式常用函数解读课件_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章要点: 常量与变量运算符和表达式常用函数 第3章 数据与数据运算本章要点:第3章 数据与数据运算3.1.1 常量通常,操纵数据库不仅需要学会菜单和工具操作,还应学会命令操作和程序操作,才能完成更加复杂的任务。要达到这个目的就必须学会VFP语言。同其它计算机语言一样,VFP语言的基本要素也是数据类型、数据存储、表达式以及函数等。 常量是在命令或程序中可直接引用、具有具体值的命名数据项,其特征是在整个操作过程中它的值和表现形式保持不变。 Visual FoxPro按常量取值的数据类型,将常量以下六种: 数值型、货币型、字符型、日期型、日期时间型、逻辑型。3.1 常量与变量3.1.1 常量3.1

2、 常量与变量数值型(代号N) 数值型(Numeric)数据由数字、小数点、正负号和字母E组成。数值型数据的取值范围是:-0.9999999999E+190.9999999999E+20,包括正负号、小数点和字母E在内,其长度(数据位数)最大20位。通常用于表示实数。如23,-13.45,0,1.3E-5(即1.3*10-5)等;货币型(代号Y) 货币型(Currency)数据是为存储美元金额而使用的一种称为货币(Currency)的数据类型,其取值范围是: -922337203685477.5808 922337203685477.5807,默认保留4位小数,占据8字节存储空间。货币型数据用字

3、母Y表示。数值型(代号N)字符型(代号C) 字符型(Character)数据是不具计算能力的文字数据类型。字符型数据包括中英文字符、数字字符和其他ASCII字符,其长度(字符个数)范围是0-254个字符。 字符型常量也称作字符串,表示方法用定界符(单引号、双引号或方括号)把字符串扩起来,定界符必须成对使用,并且只能用半角符号。逻辑型(代号L) 逻辑型(Logic)数据是描述客观事物真假的数据类型,表示逻辑判断的结果。逻辑型数据只有真(.t.或.y.)和假(.f.或.n.)两种,固定长度1位。为区别其他数据类型,一般需在表示逻辑值的字母t、y、f、n的前后加圆点符“.”。 字符型(代号C)日期型

4、(代号D) 日期型(Date)数据是表示日期的数据。定界符是一对花括号。其默认格式是mm/dd/yyyy。如10/01/02和10/01/2002均表示2002年10月1日这一日期常量值。 SET CENTURY ON | OFF使年份分别用4|2位表示。严格的日期格式:不受影响日期格式设置命令的影响,表达一个确切的日期。格式是:yyyy-mm-dd 符号表明该格式是严格的日期格式,并按照 YMD 的格式解释日期型和日期时间型数据,它是严格日期格式的标志,不可缺少。有效的日期型和日期时间型数据分隔符为:连字符“-”、正斜杠“/”、句点“.”和空格。如2005-10-01以严格的日期格式表示20

5、05年10月1日。日期型(代号D)设置日期显示格式用户可以调整、设置日期值和时间值的显示输出格式。既可以用命令方式设置,也可以用菜单方式设置。命令格式:SET DATE TO AMERICAN |ANSI |BRITISH |FRENCH |GERMAN |ITLIAN |JAPAN |USA |MDY |DMY |YMD |SHORT |LONG命令功能:设置日期型和日期时间型数据的显示输出格式。系统默认为AMERICAN美国格式。如果日期格式设置为SHORT或LONG格式,VisualFoxPro系统将按Windows系统设置的短日期格式或长日期格式显示输出日期数据,而且SETCENTUR

6、Y命令的设置被忽略。设置日期显示格式系统日期格式日期时间型(代号T) 日期时间型(Date Times)数据是表示日期和时间的数据,用字母T表示。日期时间的默认格式是mm/dd/yyyy hh:mm:ss,其中mm、dd、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数。日期时间型数据也是采用固定长度8位,取值范围是:日期为01/01/000112/31/9999,时间为00:00:0023:59:59。如10/01/2005 10:30:30表示2005年10月1日10时30分30秒这一日期时间数据。设 置 值 日 期 格 式 设 置 值 日 期 格 式 AMERICA

7、N mm/dd/yy USAmm-dd-yyANSIyy.mm.ddMDY mm/dd/yyBRITISHdd/mm/yyDMY dd/mm/yy GERMAN dd.mm.yy YMD yy/mm/dd ITALIAN dd-mm-yySHORTWindows短日期格式JAPAN yy/mm/ddLONGWindows长日期格式系统日期格式日期时间型(代号T)设 置 值 日 期 3.1.2 变量 变量是在操作过程中可以改变其取值或数据类型的数据项。在Visual FoxPro系统中变量分为内存变量、数组变量、系统变量和字段变量4类。此外,作为面向对象的程序语言,Visual FoxPro在进

8、行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。 确定一个变量,需要确定其三个要素:变量名、数据类型和变量值。 3.1.2 变量内存变量 内存变量是存在于内存中的变量,是一种临时的工作单元,需要时可以临时定义,不需要时可以随时释放。如果内存变量与数据表中的字段变量同名时,用户在引用内存变量时,要在其名字前加一个前缀(m.),用以强调这一变量是内存变量。1)内存变量的赋值 命令格式1: STORE TO 命令格式2: = 【例3.1】在VFP的命令窗口中定义变量并赋值。 B=6 &定义变量B并赋值 STORE B+3 TO C &定义变量C并赋值 STORE “VFP” TO A

9、,B,C &同时定义变量A,B,C并为其赋相同值内存变量 2)内存变量值的输出命令格式:? | ? 命令功能:先计算表达式的值,然后将该值输出到屏幕上。【例3.2】使用? | ?输出内存变量。 B=“VFP” &定义变量B并赋值 ? B &在主窗口中显示VFP ? “数据库” &紧接在上一命令显示结果VFP的 后面显示数据库 ? S=,B &换一行后显示S= VFP说明:?表示从屏幕下一行的第一列起显示结果;?表示从当前行的当前列起显示结果;逗号来隔开多个表达式,命令执行时遇逗号就空一格。2)内存变量值的输出3)显示或打印全部内存变量命令格式:LIST/DISPLAY MEMORY LIKE

10、TO PRINTER/TO FILE命令功能:显示或打印一个或多个内存变量的当前内容,或者将这些内容送到一个扩展名为.TXT的文件中。【例3.3】定义内存变量A的值为“中国”,A1的值为5,并在屏幕上显示。A=“中国”A1=5LIST MEMORY LIKE A*结果显示:APubC“中国”A1PubN 5( 5.00000000)说明:LIKE子句表示将选出与通配符相匹配的内存变量,有?和*两种,前者代表单个字符,后者代表一个或多个字符。3)显示或打印全部内存变量4)建立内存变量文件 内存变量被定义后,通常只存放在内存中,当退出VFP或关机后,内存变量就被清除。如果以后还需要使用所定义的内存

11、变量,可以将其保存在内存变量文件中,需要时从磁盘将其调出即可。命令格式:SAVE TO ALL LIKE/ALL EXCEPT 命令功能:将指定的内存变量存入扩展名为.MEM的内存变量文件中。【例3.4】在VFP命令窗口中,执行如下命令:SAVE TO AASAVE TO MM ALL LIKE X*SAVE TO BB ALL EXCEPT ?Y4)建立内存变量文件5)内存变量文件的调入 用RESTORE命令可以将内存变量文件中的变量调入内存中。命令格式:RESTORE FROM ADDITIVE命令功能:把存放在磁盘中的内存变量文件调入内存,从而恢复原有的内存变量或数值。【例3.5】在VF

12、P命令窗口中,执行如下命令:RESTORE FROM MMRESTORE FROM BB ADDITIVE说明:在命令中,如果有ADDITIVE选项,表示把磁盘中指定文件的内存变量附加到现有内存变量之后,不覆盖当前内存变量;如果无此选项,则覆盖当前的内存变量。5)内存变量文件的调入6)释放内存变量 释放内存变量是将内存中的内存变量删除,释放出所占用的内存空间。命令格式:RELEASEALL LIKE|EXCEPT命令功能:释放指定的内存变量,但不清除系统内存变量。【例3.6】在VFP命令窗口中,执行如下命令:RELEASE ALL &释放所有已定义的内存变量RELEASE X,Y &释放已定义

13、的内存变量Y,ZRELEASE ALL LIKE A* &释放所有第一个字母是A的内存变量说明:此外,CLEAR MEMORY命令也能够清除所有已定义的内存变量;CLEAR ALL命令在关闭所有文件的同时也将清除所有的内存变量。6)释放内存变量数组变量 数组是一组有序内存变量的集合。其中每一个内存变量是这个数组的一个元素。(如A1,2、B5)。数组必须先定义后使用。1)定义数组命令格式:DIMENSION (,) , (,)【例3.7】定义一个一维数组SZ1和一个二维数组SZ2。 DIMENSION SZ1(10),SZ2(5,2)说明: 数组一旦定义,它的初始值为逻辑值.F.,下标的起始值是

14、1; SZ1是一维数组,SZ1下标的上界10,下界为1。数组元素分别为SZ1(1),SZ1(2),SZ1(3)SZ1(10); SZ2是二维数组,SZ2第一个下标为行标,上界5,下界1,SZ2第二个下标为列标,上界2,下界为1。数组元素分别SZ2(1,1),SZ2(1,2),SZ2(2,1),SZ2(2,2)SZ2(5,1),SZ2(5,2)。数组变量 2)数组类型 数组类型是指数组元素的类型。因为每一个数组元素又是一个内存变量,所以它的类型同样由它接受的数据的类型所决定。在VFP系统环境下,同一个数组元素在不同时刻可以存放不同类型的数据,在同一个数组中,每个元素的值可以是不同的数据类型。3)

15、数组赋值 给数组赋值,就是分别给每个数组元素赋值,与给内存变量赋值操作完全相同。【例4.8】定义一个一维数组X,给所有数组元素赋值并输出其值。 DIMENSION X(4) STORE 0 TO X(1),X(2),X(3),X(4) ?X(1),X(2),X(3),X(4)2)数组类型字段变量 字段变量隶属于数据表文件,每个数据表中都包含若干个字段变量。定义数据表,首先要定义其结构,然后再添加相应的内容。数据表中的每一列称为一个字段;数据表中的每一行称为一条记录,每条记录是由若干个相关联的字段组成的。在数据表中,同一个字段名下的数据值是不同的,它随着记录的变化而改变其数据值,因而称为字段变量

16、。对字段变量的定义是在定义数据表结构时完成的,主要给出变量名、变量类型、变量宽度以及数值型数据的小数位数等。字段变量 系统变量 VFP提供了一批系统变量,它们都以下划线“_”开头,分别用于控制外部设备(如打印机、鼠标器等),屏幕输出格式,或处理有关计算器、日历、剪贴板等方面的信息。在使用DISPLAY MEMORY命令显示内存变量时,可以看到这些系统变量的当前值。系统变量举例: _CALCVALUE:给计算器传值。例如执行_CALCVALUE=20后,再通过ACTIVATE WINDOW calculator命令显示计算器 _CLIPTEXT:接受文本并送入剪贴板。例如执行_CLIPTEXT=

17、“VFP”后,剪贴板中就存储了文本VFP。系统变量算术运算符和算术表达式 VFP提供的算术运算符有:圆括号()、乘方(或*)、乘 (*)、除(/)、模运算或取余(%)、加(+)、减(-)、取负(-)。它们的作用与数学中的算术运算符相同,运算顺序为:先计算圆括号内的数据,然后是乘方,其次是乘、除和取模,最后是加和减,其中乘、除和取模是同级,加和减是同级,分别从左到右进行计算。例如,5*10/2,128%5。3.2 运算符与表达式算术运算符和算术表达式 3.2 运算符与表达式字符串运算符和字符串表达式 字符串运算符有以下4种:完全连接运算符(+)、不完全连接运算符(-)、字符串包含运算符($)和精

18、确比较运算符(= =)。 “计算机 ”+“世界”结果为 “计算机 世界” “计算机 ” -“世界”结果为 “计算机世界 ” “AB” $ “ABCD”结果为 .T. “XY” $ “ABCD”结果为 .F. “工程师” = = “工程师” 结果为 .T. “工程师 ” = = “工程师” 结果为 .F.字符串运算符和字符串表达式 日期时间运算符和日期时间表达式 日期型运算符只有加(+)和减(-)两种。【例】对下列的表达式进行计算 1998/05/30-1998/05/20 结果为10 1995/10/28-20 结果为 10/08/1995 1996/10/28 11:00:00 a+10 结

19、果为10/28/1996 11:00:10关系运算符和关系表达式 关系运算符有如下几种:小于()、等于(=)、不等于(、#或!=)、小于等于(=)。【例】进行如下的关系运算 53 .AND. 8“C” .OR. “A”“C” 结果为.T. .NOT. 56 结果为.F.逻辑运算符和逻辑表达式 3.3 函数字符处理函数 1)SUBSTR函数格式:SUBSTR(, ,)功能:从给定的字符串中取子串,是子串在字符串中的起始位置,可选项规定取子串的长度,若缺省,则取到字符串的最后一个字符。 【例】使用取子字符串函数。 ?SUBSTR(“COMPUTER”,3,4) &“MPUT” ?SUBSTR(“城

20、市经济”,5,4) &“经济”3.3 函数字符处理函数 2)LEFT函数格式:LEFT(,)功能:从给定的左起取子串,子串字符的个数由的值而定。【例】从字符串的左边取子字符串。?LEFT(“COMPUTER”,4) &“COMP”3)RIGHT函数格式:RIGHT(,)功能:从给定的右起取子串,子串字符的个数由的值而定。【例】从字符串的右边取子字符串。?RIGHT(“COMPUTER”,4) &“UTER”2)LEFT函数4)ALLTRIM函数格式:ALLTRIM()功能:删除字符串前后的空格。【例】删除字符串前后的空格。?ALLTRIM(“ Visual FoxPro ”) &“Visual

21、 FoxPro”5)AT函数格式:AT(,)功能:返回一数值,确定在中第次出现的位置。缺省,求首次出现的位置。【例】确定字符串出现的位置。?AT(“ac”, “ABCacd”) &44)ALLTRIM函数6)UPPER函数格式:UPPER()功能:将中小写字母转换为大写。【例】将小写字符转换成大写字符。?UPPER(“abcde”) &“ABCDE”7)LOWER函数格式:LOWER()功能:将中大写字母转换为小写。【例】将大写字符转换成小写字符。?LOWER(“ABCDE”) &“abcde”8)LEN函数格式:LEN()功能:返回字符串的长度。【例】测试字符串的长度。?LEN(“ABCDE

22、”) &56)UPPER函数9)SPACE函数格式:SPACE()功能:返回一空格组成的字符串,长度由的值决定。【例】使用空格生成函数。?“北京”+SPACE(3)+“首都” &“北京 首都”10)STR函数格式:STR(,)功能:将的值转换为字符型,决定返回字符串长度,决定小数部分的输出位数。【例】使用数值型转换成字符型函数。?STR(3.1416,5,3) &“3.142”9)SPACE函数11)VAL函数格式:VAL()功能:将的值转换为数值型,必须为有效的数字。【例】使用字符型转换成数值型函数。?VAL(“12”)+VAL(“13”) &2512)CHR函数格式:CHR()功能:将的值

23、作为ASCII码并返回与其对应的字符。【例】使用求字符函数。?CHR(68) &“D”11)VAL函数13)ASC函数格式:ASC()功能:将 的值的第一个字符转换为数值型的ASCII码并返回。【例】使用求ASCII函数。?ASC(“WORK”) &“87”13)ASC函数数值处理函数 1)绝对值函数格式:ABS()功能:求数值表达式的绝对值。【例4.25】使用绝对值函数。?ABS(-60) &602)INT函数格式:INT()功能:返回的值的整数部分。【例】使用取整函数。?INT(-6.77) & -6数值处理函数 3)ROUND函数格式:ROUND(,)功能:对的值进行四舍五入。若的值大于

24、等于零,则表示要保留的小数位数。【例】使用四舍五入函数。?ROUND(22.7,0) &23?ROUND(82.2275,2) &82.234)MAX函数格式:MAX(,)功能:求两个(多个)的值之较大者,两个表达式可以是数值型,日期型或字符型。【例】使用最大值函数。?MAX(100,1000,360) &10003)ROUND函数5)MIN函数格式:MIN(,)功能:求两个(多个)的值之较小者,或两个表达式中的较早日期。【例】使用最小值函数。?MIN(100,1000) &100?MIN(1999/04/23,1999/06/15) &04/23/19996)MOD函数格式:MOD(,)功能

25、:求除以的余数。【例】使用求余函数。?MOD(8,5) &3 8=5*1+3?MOD(8,-5) &-2 8=(-5)*(-2)+(-2)?MOD(-8,5) &2 -8=5*(-2)+2*注意函数值的符号与表达号2的符号一致5)MIN函数7)SQRT函数格式:SQRT()功能:求的平方根。【例】使用平方根函数。?SQRT(4) &2.008)EXP函数格式:EXP()功能:求e的次方的值。【例】使用EXP函数。?EXP(2) &7.399)RAND函数格式:RAND()功能:返回伪随机数。【例】使用随机数函数。?RAND() &随机数,如0.857)SQRT函数日期和时间处理函数 1)系统当

26、前日期函数格式:DATE()功能:返回当前系统日期值。返回值为日期型,其格式可由 SET DATE、SET CENTURY和SET MARK TO改变。【例】显示当前系统日期。?DATE() &05/03/20042)系统当前时间函数格式:TIME()功能:以时、分、秒(hh:mm:ss)的格式显示系统时间。 函数返回值为字符型。【例】显示当前系统时间。?TIME() &14:04:03日期和时间处理函数 3)系统日期时间函数格式:DATETIME()功能:返回当前系统的日期时间,函数值为日期时间型数据。【例】显示当前系统的日期时间。?DATETIME() &05/03/2004 14:04:

27、034)天数函数格式:DAY(/)功能:返回日期型、日期时间型表达式的天数值。函数返回值为数值型。【例】取出日期函数的天数值。?DAY(DATE() &35)月份函数格式:MONTH(/)功能:返回日期型、日期时间型表达式的月份值。函数返回值为数值型。【例】取出日期函数的月份值。?MONTH(DATE() &53)系统日期时间函数6)年份函数格式:YEAR(/)功能:返回日期型、日期时间型表达式的年份值。函数返回值为数值型。【例】取出日期函数的年份值。?YEAR(DATE() &20047)小时函数格式:HOUR()功能:返回指定日期时间型表达式中的小时部分。8)分钟函数格式:MINUTE()

28、功能:返回指定日期时间型表达式中的分钟部分。9)秒函数格式:SEC()功能:返回指定日期时间型表达式中的秒数部分。6)年份函数10)CTOD函数格式:CTOD()功能:将的值转换为日期。【例】将字符型数据转换成日期型。?CTOD(“10/01/99”) &10/01/199911)DTOC函数格式:DTOC()功能:将的值转换为字符型。【例】将日期型数据转换成字符型。?DTOC(2001/01/14) &“01/14/2001”10)CTOD函数与数据表有关的函数 1)表文件开始测试函数格式:BOF()功能:检测当前表的记录指针是否指向表首记录前的开始标志,如果是,返回真值(.T.),否则返回

29、假值(.F.)。【例】使用BOF函数。USE xsqk.dbf?BOF() &.F.SKIP 1?BOF() &.T. 与数据表有关的函数 2)表文件结束测试函数格式:EOF()功能:检测当前表的记录指针是否指向表末记录后的结束标志,如果是,返回真值(.T.),否则返回假值(.F.) 【例】使用EOF函数。USE xsqk.dbf?EOF() &.F.GO BOTTOM?EOF() &.F.SKIP 1?EOF() &.T.2)表文件结束测试函数3)记录号测试函数格式:RECNO()功能:返回当前记录的记录号。函数返回值为数值型。【例】使用记录号测试函数。USE xsqk.dbf?RECNO(

30、) &1GOTO 4?RECNO() &44)测试查询结果函数格式:FOUND()功能:用于测试查询表文件或索引文件的记录是否找到,如果找到,结果为逻辑真值,否则为逻辑假值。3)记录号测试函数5)记录删除测试函数格式:DELETED()功能:如果当前记录被做过删除标记,则返回逻辑真值,否则返回逻辑假值。6)记录个数测试函数格式:RECCOUNT()功能:返回打开的数据表文件的记录个数。函数返回值为数值型。该函数不受SET DELETED和SET FILTER命令的影响。7)ISNULL函数格式:ISNULL()功能:如果表达式是一个空值,返回逻辑真值,否则返回逻辑假值。5)记录删除测试函数显示

31、信息函数 格式:MESSAGEBOX(,)功能:以窗口形式显示信息。说明: 该函数返回值是数字。 “信息文本”是指要在对话框中输出的信息。 “对话框标题”表示要显示在对话框标题栏的文字。 “对话类型”有很多值可以使用,不同的值代表不同的含义类型对话框按钮类型图标类型默认按钮012345“确定”按钮“确定”和“取消”按钮“终止”、“重试”和“忽略”按钮“是”、“否”和“取消”按钮“是”和“否”按钮“重试”和“取消”按钮16324864“终止”图标“问号”图标“感叹号”图标“信息”图标0256512第1个按钮第2个按钮第3个按钮显示信息函数 类型对话框按钮类型图标类型默认按钮0“确定”按【例】在对话框中使用3个按钮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论